场景:PL/SQL开发时,错误“ORA-01722: 无效数字或者ORA-01722: invalid number”的原因分析(二)

PL/SQL开发时,异常“ORA-01722: 无效数字或者ORA-01722: invalid number”的原因分析(二)

我们在写PL/SQL语句时,经常会用到字符串A与数字B的比较,而很多人的做法是直接做比较,殊不知Oracle会隐含地先将字符串A转换为数字,然后再与数字B做比较,这样做之后,就出现隐患了,即当时写程式时,无论怎么测试都不会出现错误,一旦运行一段时间后,系统使用者就会反映“Form程式出现异常或者是Report出现异常”,而异常就是“ORA-01722: 无效数字或者ORA-01722: invalid number”,而开发者在查找原因时,却会感觉莫名其妙,觉得不可能。

其实,原因很简单,就是在写PL/SQL时,书写不规范造成的,即尽量少使用隐含转换。

排除错误方法:可以先从Where语句中查找,检查是否存在数据类型隐含转换的情况,然后在Select语句中,检查是否存在数据类型隐含转换的情况,还要检查所使用的函数如Nvl、Decode等,检查这些函数中所引用的栏位,是否存在数据类型隐含转换的情况。

例子如下:

-- Create table

create table Test

(

ORDER_Num VARCHAR2(8)

);

insert into Test(Order_Num) Values('123456');

insert into Test(Order_Num) Values('123457');

insert into Test(Order_Num) Values('12345-1');

insert into Test(Order_Num) Values('12345-2');

出错的语句:

Select t.Order_Num, Decode(t.Order_Num, 123456, 'a', 'b') From Test t

where t.order_num < 223456;

改正为:

Select t.Order_Num, Decode(t.Order_Num, '123456', 'a', 'b') From Test t

where t.order_num < '223456';

ora-01722 无效数字_SQL 错误: ORA-01722: 无效数字相关推荐

  1. ora-01722 无效数字_错误提示ORA-01722: 无效数字一例

    遇到用户反馈过来的一例错误提示: select dutycode,rpttype,rptid from vRptDuty where RptId=7 ; 这个语句提示 ORA-01722: 无效数字 ...

  2. oracle错误01653,oracle 10g 错误 ORA 01653 的解决过程

    oracle 10g 错误 ORA 01653 的解决过程 早上用户反应在操作用友NC时报错 ORA-01653 ,详细信息:ORA-01653: 表 NCV35.GL_DETAIL 无法通过 102 ...

  3. Oracle错误: ORA-01722 无效数字

    Oracle错误: ORA-01722 无效数字 1.排查错误 举个栗子 2.总结 几个常见的转换格式的oracle函数 1. 将日期型转换为字符串TO_CHAR() 2. 将数字型转换为字符串to_ ...

  4. oracle olap 不可用,[数据库]ORACLE OLAP错误ORA

    [数据库]ORACLE OLAP错误ORA 0 2015-04-25 00:00:20 刚刚安装了ORACLE 10g R2后,启动数据库时发现告警日志有如下错误: Database Characte ...

  5. 很蛋疼的ORA-00911:无效的字符错误

    今天在建一个DBlink 时出现 ORA-00911:无效的字符错误, 语法是   create public database link  tmsdb   connect to user1 iden ...

  6. lsass.exe--系统错误 安全帐户管理初始化失败,原因是以下错误:句柄无效.错误状态:0xc0000008...

    lsass.exe--系统错误 安全帐户管理初始化失败,原因是以下错误:句柄无效.错误状态:0xc0000008   今天一同事的笔记本在重启以后出现如上图的提示:从提示可以看出是安全帐户管理器出了问 ...

  7. 启动http监听失败、添加URL保留项失败,错误6句柄无效

    问题现象: 1.启动http监听失败 2.执行netsh命令 返回:添加URL保留项失败 错误6 句柄无效 查看URL保留项  netsh http show urlacl 添加URL保留项  net ...

  8. 计算机错误1327,错误:错误 1327。 无效驱动器

    错误:错误 1327. 无效驱动器 错误消息 安装 ArcGIS Desktop 时,显示以下错误消息: "错误 1327. 无效驱动器 X:\" 驱动器盘符可能不同,通常不存在, ...

  9. windwos安装autocad2018报错 错误1327 驱动器无效D:\

    说明因为我的电脑分区只有一个C盘,因此安装autocad2018报错,错误1327 驱动器无效D:\,没有D盘肯定会报错. 解决办法 很简单,插入一个驱动器名称是D的U盘就能解决这个问题,成功安装Au ...

最新文章

  1. Ansible常用模块详解
  2. centos -bash: vim: command not found
  3. web前端开发面试题(答案)
  4. python卸载pip_PIP安装和卸载包,pip
  5. 你离BAT之间,只差这一套Java面试题
  6. STM32F103C8T6引脚功能分布
  7. [保存]C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
  8. mybatis mysql 模糊查询语句_mybatis+Spring mysql的模糊查询问题
  9. 牛客网2018多校第一场J题
  10. JavaScript入门详解
  11. SSRF 服务器端请求伪造
  12. .Net·使用ILSpy反编译exe或dll文件保存为项目结构
  13. 第一次做APP接口开发过程总结
  14. ubuntu 下文件/文件夹 比较工具 DiffMerge
  15. 三重视角看陈彤:一个网媒老兵的谢幕
  16. 2022陈箫箫胡程灿信息论课程作业 MIMO信道(multi-input multi-output,MIMO)简介
  17. 精算未来会被计算机代替吗,年薪过百万还不用加班?揭开精算专业的真面目(下篇)...
  18. 清除某个特定网站的缓存---基于Chrome浏览器
  19. 将小写人民币转换成大写
  20. excel怎么设置打印区域_在excel上怎么可以使打印时,将整个纸张占满?

热门文章

  1. npm配置安装淘宝镜像(全)
  2. matlab三维凸包,用 qhull 计算三维点集的凸包
  3. redo log和bin log以及两阶段提交(笔记)
  4. vue跨域问题解决方法
  5. 【开源项目】虎门大桥数字孪生应用智慧桥梁——开放数据及源码
  6. 【开发环境】(阿里云分布式文件系统)对象存储OSS 服务配置
  7. html表格单行溢出省略号,自适应表格字符换行 单行溢出省略号table-layout: fixed;...
  8. Eighth season twenty-second episode,does sex promote childbirth???????
  9. web前端期末大作业 html css javascript jquery bootstarp响应式鲜花售卖网站16页
  10. 最小化窗口后,在任务栏里找不到最小化后的图标