当前位置:  数据库>oracle

Oracle数据报ORA-01722: invalid number错误解决一例

    来源: 互联网  发布时间:2017-06-24

    本文导语: 网上看到很多有关ORA-01722: invalid number问题的分析,我这里遇到的基本没有描述,所以把我遇到的情况描述分享给大家,希望有帮助。 我的情况:数据库表中有一个varchar2类型的字段,里边可能包含数字或用逗号分隔的数据,如3...

网上看到很多有关ORA-01722: invalid number问题的分析,我这里遇到的基本没有描述,所以把我遇到的情况描述分享给大家,希望有帮助。

我的情况:
数据库表中有一个varchar2类型的字段,里边可能包含数字或用逗号分隔的数据,如3或4,5这样的值,查询时,只传入了一个数字,也就是不带逗号的参数。因此sql语句类似这样:
select * from ct where nos = 3
语句本身一看就知道会出问题,因为3没加引号,会被当作数字处理。这样就肯定会报ORA-01722: invalid number的错误:
SQL Error: 1722, SQLState: 42000
ORA-01722: invalid number

但在用hibernate时,为了避免数字问题,我们经常会这样写hsql语句:
String sql = "select * from ctEntity as ct where ct.Nos = '"+no+"'";
当传入参数no为‘4,5’时,可能不会报错,但当no为'4'或'5'时,也就是单个数字时,就会报错了。经过打印hibernate的语句,发现单个数字时,hibernate会把上述语句转义成这样:
select ct.Nos from ctEntity as ct where ct.Nos=4

也就是会忽略掉引号,这样数据库就会报错,因为varchar2类型的nos字段在查询时给转义成了数字,所以肯定报错了。

这种情况下,hsql语句就不能用 ct.Nos = ' ***'这样的写法,必须用like,如ct.Nos like '%no%',这样才不会报错。当然完整的查询语句要考虑逗号的前、后以及没有逗号的情况,那就自己考虑了。


    
 
 

您可能感兴趣的文章:

  • 安装Oracle加载数据库错误areasQueries的解决
  • 我在安装oracle的时候出现了这个错误,请懂行人赐教~~附图!~~
  • 记录Linux下一次oracle启动错误
  • shell如何获取oracle错误码 在线等
  • Linux系统下安装Oracle X11错误解决办法
  • 求助前辈们:solaris 10 x86 安装oracle 10g 错误
  • 有 ORACLE 错误码文档吗? 谢谢大家!
  • Eclipse连接Oracle数据库的ORA-00604 ORA-12705错误
  • ORACLE安装时/tmp/orainstRoot.sh 执行发生错误
  • 关于提高Oracle数据库性能的四个错误认识
  • C++使用OCCI连Oracle10g的错误
  • Linux上管理本机Oracle的时候出现找不到ServiceName的错误
  • Oracle的sqlcode对应的错误信息sqlerrm
  • 连接Oracle817数据库的错误提示
  • Oracle AS关键字 提示错误
  • rh9上装oracle817犯了个低级错误,如何挽回?
  • oracle错误迷惑
  • FC6下安装Oracle9i错误,请高手指教 在线等 解决即结贴
  • Oracle10201 RAC升级到10204后导出数据时报EXP-00056错误
  • 在tomcat下连接oracle8i的javabean出现如下错误,急!
  • linux下安装Oracle 10g /etc/profile 出现 -bash: ulimit: pipe size :cannot modify limit:invalid argument 的错误
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 解决oracle用户连接失败的解决方法
  • Oracle Connect to Idle Instance解决方法
  • Linux下安装Tomcat后与Oracle冲突的解决
  • linux下安装oracle,出现没有权限的报警,怎么解决?
  • Oracle 11g 相关工具netca,dbca乱码之解决
  • Linux安装Oracle 11时报错DISPLAY解决方案
  • Linux下Oracle安装时遇到的问题及解决
  • 简单的Oracle小问题解决
  • oracle中文乱码解决的办法
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • 安装oracle9时,安装界面的字体无法正确显示,怎么解决啊???
  • Oracle安装后8080和80端口被占用的解决办法
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • oracle 实际值超过数据库某个字段指定长度报错解决
  • Linux下命令行启动oracle时报错的解决
  • 急!急!jbuilder中新建oracle数据源的问题,解决立即给分!
  • Linux中安装Oracle乱码问题的解决
  • Oracle与JSDK4.0环境变量冲突,如何解决(在线等待)?
  • Linux下Oracle 10G DBCA等汉字乱码解决方法
  • oracle的job不能运行问题的解决方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3