在Oracle数据库中,数据类型为char或者varchar的字段,里面存储的数据,可以是纯数字串,比如:  3433,也可以是带有英文字符的字符串,比如:  3433a。

Oracle对于纯数字串,其查询方式是比较随意的,where alert_id = '3433'  或者where alert_id = 3433  这两种查询条件都可以,也就是说,带引号或者不带引号都可以。

Oracle对于字符串,则只能用上面第一种方式(带引号),如果用第二种方式(不带引号),则会报错:ORA-01722: invalid number。

也就是说,虽然数据类型是一样的,但是Oracle内部对于纯数字串和字符串还是有所区分的,而且Oracle认为这个字段的所有数据都是这种类型。这个纯数字串和字符串的相互转化,可能就取决于一条数据。

如果在一个数据库中的某个字段,以前的数据都是纯数字串,这个时候你一定要注意,不要轻易向里面插入(或者更新为)一个字符串。因为以前的源代码可能两种查询方式都用了,你一旦插入一个字符串,则该字段的所有数据都变为字符串,以前用的第二种查询方式就不能用了。

这个错误很隐蔽,因为源代码并没有改变,这个位置的数据也没有改变,只是其他位置的数据改变了。如果改变数据库的人和编写源代码的人不是同一个人,就更难发现了。

因此,如果不想修改源代码的话,还是按照以前的方式来吧。

ORA-01722 invalid number 一个比较隐蔽的可能错误原因的更多相关文章

  1. LR连接oracle时出现:SQLState=28000[Oracle][ODBC][Ora]ORA-01017:invalid username/password;logon denied

    出现的现象:

  2. use AP_VENDOR_PUB_PKG.Update_Vendor_Site_Public to u ORA-01722: invalid number in Package AP_VENDOR_PUB_PKG Procedure Update_Vendor_Site_Public

    ORA-01722: invalid number in Package AP_VENDOR_PUB_PKG Procedure Update_Vendor_Site_Public 发现此问题的经过: ...

  3. ORA-01722: invalid number

    ---问题 select owner,index_name,DEGREE from DBA_INDEXES where DEGREE>1                             ...

  4. 'Invalid update: invalid number of rows in section xx. The number of rows contained in an existing section after the update (xxx)...

    'Invalid update: invalid number of rows in section 5.  The number of rows contained in an existing s ...

  5. ORA-01722: invalid number,ORA-12801

    SQL: SELECT /*+ parallel(a,32) */ a.id ,a.data_date ,a.mobile_num ,a.mobile_code ,b.prov AS mobile_p ...

  6. java.sql.SQLException: Io 异常: Invalid number format for port number

    java.sql.SQLException: Io 异常: Invalid number format for port number   jdbc数据库链接配置没有写端口号 ​ 要检查jdbc的配置 ...

  7. 解决sqoop报错Invalid number; item = ITEM_UNICODE

    报错栈: java.sql.SQLException: Invalid number; item = ITEM_UNICODE at com.intersys.jdbc.SysList.getInt( ...

  8. [nginx]invalid number of arguments

    invalid number of arguments nginx出现以下的错误,基本上错误的原因就是少了后面的分号导致. invalid number of arguments

  9. Io 异常: Invalid number format for port number

    报错信息: Caused by: java.sql.SQLException: Io 异常: Invalid number format for port number    at oracle.jd ...

随机推荐

  1. 使用OpenCL提升OpenCV图像处理性能 | speed up opencv image processing with OpenCL

    本文首发于个人博客https://kezunlin.me/post/59afd8b3/,欢迎阅读最新内容! speed up opencv image processing with OpenCL G ...

  2. 奥展项目笔记06--js弹出框、对话框、提示框、弹窗总结

    JS的三种最常见的对话框: //====================== JS最常用三种弹出对话框 ======================== //弹出对话框并输出一段提示信息 functi ...

  3. Knative 应用在阿里云容器服务上的最佳实践

    作者|元毅 阿里云智能事业群高级开发工程师 相信通过前面几个章节的内容,大家对 Knative 有了初步的体感,那么在云原生时代如何在云上玩转 Knative?本篇内容就给你带来了 Knative 应 ...

  4. Spring Cloud Feign 服务消费调用(三)

    序言 Spring Cloud Netflix的微服务都是以HTTP接口的形式暴露的,所以可以用Apache的HttpClient或Spring的RestTemplate去调用 而Feign是一个使用 ...

  5. 使用python对美团的评论进行贝叶斯模型分类

    环境配置需要安装的包pip install pandas pip install jieba pip install sklearn 一.数据获取利用python抓取美团的数据集,获取非空的数据,抓取 ...

  6. 《 .NET并发编程实战》扩展阅读 - 元胞自动机 - 1 - 为什么要学元胞自动机

    先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.

  7. Winform中设置ZedGraph的X轴与Y轴的刻度不在对面显示

    场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 Win ...

  8. Python脚本1

    [轮子]P123. 求最大约数,并鉴别是否为素数

  9. android studio学习----android studio断点调试

    先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试. IDE下方出现Debug视图,红色的箭头指 ...

  10. Alpha七天冲刺

    一. 原计划冲刺甘特图 二. 七天冲刺博客 1. https://www.cnblogs.com/liujiamei/p/11870107.html 2. https://www.cnblogs.co ...