今天写一条SQL语句时,反复抛出invalid number错误。
因为传入参数是纯数字类型,
所以一直以为是在要查询的表中存在非数字类型的值,
导致where中存在隐性转换TO_NUMBER无法进行转换,而抛出的该错误。
但在我将参数全部与自定义字符串拼接转成字符串类型后进行查询,也还是会报出这个错误
对参数进行处理后的语句如下:

SELECThp.customer_model AS customerModel,TO_CHAR(c.prduct_id) AS prductId
FROMhw_barcode cLEFT JOIN hw_product hp ON hp.id = c.prduct_id
WHERE1 = 1 AND concat(123456,'x') LIKE c.begin_code || '%'AND 'x' || 123456 LIKE '%' || c.end_code AND ROWNUM = 1

然后就只能对SQL进行逐行分析了:

explain plan for
SELECThp.customer_model AS customerModel,TO_CHAR(c.prduct_id) AS prductId
FROMhw_barcode cLEFT JOIN hw_product hp ON hp.id = c.prduct_id
WHERE1 = 1 AND concat(123456,'x') LIKE c.begin_code || '%'AND 'x' || 123456 LIKE '%' || c.end_code AND ROWNUM = 1select * from TABLE(dbms_xplan.display);

在结果中可以看到,在表与表之间的left join 关联处,右表的关联字段会自动转成左表的关联字段的数据类型:

了解了问题之后,查看对应的表的字段类型和表内的数据,就可以发现右表中的’prduct_id’字段实际上是varchar类型的,并且其中数据存有非数字类型的值,所以在这里进行转换是肯定会报错的。将进行连接的字段修改之后,SQL正常运行并查出了对应数据。

Oracle ORA-01722: invalid number 错误分析相关推荐

  1. oracle能用hql吗,使用HQL查询日期,Oracle报“Invalid number”

    如题,Oracle数据库里面有一批记录,现在我想根据其中一个叫:txn_date的字段来查询记录,在Hbm文件中我配置了该HQL,如下所示: select {job.*} from Newslette ...

  2. 关于Oracle执行sql语句报错[ORA-01722: invalid number]无效数字解决思路

    一.问题提示 执行Oracle的sql语句提示[ORA-01722: invalid number]无效数字错误. 二.问题分析 2.1.类型不匹配 即数据库中字段的设计类型与插入.修改的类型不统一( ...

  3. Invalid number format for port number(链接ORACLE时忘记加端口出现的错误)

    错误:java.sql.SQLException: Invalid number format for port number 原因:连接oracle时端口号错误: 解决: jdbc:oracle:t ...

  4. Oracle出错 invalid number

    报错: invalid number 一定是因为字段关联时,字符串类型和数字类型相关联了.认真点找

  5. Oracle-ORA-01722 invalid number错误

    本来正常的,经过抓包才知道原来是数字型的无意中多了乱码! 本来是3276的居然多了后面一串 3276PuAnrSeU2zliU+IV/FHlnX2Xgia1au2xX2vMWtw http://www ...

  6. 讨厌麻烦的ora 01722无效数字

    webservice开发过程中,数据库由原来的oracle改为现在的sql server.然后重新调试,结果报出ora 01722无效数字的错误. 由于连接oracle数据库的时候并没有问题,所以一开 ...

  7. Invalid number format for port number

    Invalid number format for port number(链接ORACLE时忘记加端口出现的错误) JspException:org.apache.commons.dbcp.SQLN ...

  8. Oracle Ora 错误解决方案合集

    Oracle Ora 错误解决方案合集 参考文章: (1)Oracle Ora 错误解决方案合集 (2)https://www.cnblogs.com/ios9/p/8627643.html 备忘一下 ...

  9. [burp][CTF]burp intruder爆破出现 Payload set 1: Invalid number settings的解决办法

    这是一个软件bug 如果点击start attrack 后出现 Payload set 1: Invalid number settings 的提示,先点hex 后点 decimal 再开始start ...

最新文章

  1. JS最流行Rust最受喜爱Clojure最赚钱,PHP:那我走?|2021年全球开发者报告
  2. 公益:开放一台Nacos服务端给各位Spring Cloud爱好者
  3. 《流畅的Python》一副扑克牌中的难点
  4. java版本号管理_微服务项目中如何管理依赖版本号?
  5. 我国共招过多少博士?多少硕士?数据来了!
  6. 1.5 编程基础之循环控制 33 计算分数加减表达式的值 python
  7. 让你的Android程序更省电
  8. 【人工智能】【深度学习】初学者如何选出最适合自己深度学习框架?
  9. 心脏与阴影,求阴影部分
  10. python流程控制几种_python基础流程控制与数据类型
  11. 仿射变换(Affine transformation)与python实践
  12. ai疾病风险因素识别_克服AI的“蠕动因素”
  13. 未来教育计算机二级考试系统出错,未来教育计算机二级模拟考试系统
  14. parted如何将磁盘所有空间格式化_磁盘-使用parted格式化大容量数据盘
  15. FPGA视频传输bug小记
  16. [Android] Joystick游戏手柄开发
  17. Datadog 能成为最大的云监控厂商吗
  18. iOS内容含有隐藏功能、第三方支付等被拒4次的心路历程
  19. 感知系统性能评估分析解决方案
  20. cpu功能解析,cpu功能作用与其工作过程

热门文章

  1. 常见的五种HDMI接口类型,你知道多少?
  2. python items 与 iteritems
  3. <Linux>linux中常用的信息显示命令
  4. wireshark的简单使用
  5. 几何画板教程:如何保存画板文件
  6. Centos 7 上安装 jdk 及问题小记
  7. spring7大事务传播行为
  8. EDAS助力「人人视频」新业务快速稳健上云
  9. 线性表抽象数据类型定义与顺序表操作
  10. android实习日志_2016年3月11日Android实习日记