在这个查询中,REGEXP_LIKE 函数用于检查 salary 是否匹配数字的正则表达式模式。如果匹配,则使用 TO_NUMBER 和TO_CHAR 进行转换;如果不匹配,则返回 'Invalid number'。 通过上述方法,可以有效地避免 ORA-01722 无效数字报错,并确保 TO_CHAR 函数在数据库查询中的正确使用。
> ORA-01722: invalid number 正确写法: 1,用substr截取月份 and substr(outTime,6,2) = to_char(sysdate,'mm') 2,先to_date转换为时间类型再取月份 and to_char(to_date(outTime,'YYYY-MM-DD HH24:MI:SS'), 'MM')=to_char(sysdate,'mm') 原因:非DATE类型时间不能直接用to_char转换...
连接符号错误 + || Selectto_char(loginDate,'yyyy')assYear,Count(1)asiCountFroml_logwhereoperation='登录' andInitFlag=1GroupByto_char(loginDate,'yyyy') >ORA-01722: invalid number sql语句改为: Selectsubstr(loginDate,1,4)assYear,Count(1)asiCountFroml_logwhereoperation='登录' andInitFlag=1...
ORA-01722: invalid number 异常【我改】 我的情况是,在sql中两个字段相等最为条件时,这两个字段一个类型是字符串,一个是数字,而字符串类型的字段中有一条记录不能转成为数字造成的,解决方法,用 to_char将数字类型的字段转换为字符串再比较。 如果某一个列定义的是varchar2字符串类型的,查询的时候使用...
遇到一个SQL,记录一下 select to_char(参数,'FM990.00') from 表格 刚看到FM990.00确实不知道...
TRUNC没法处理字符串,只能处理时间和数字,建议用substr截取字符串吧 substr(string1,1,2)string1 需要截取的字符串 1表示起始位置 2 表示截取长度 按理说TO_CHAR(hiredate,'year')就能直接用了,或者用TO_CHAR(hiredate,'yyyy')
兄弟,说真的,这个错误不好解决.一般没有实际环境,也没有办法给你解决.因为出现这个错误,说明你的查询结果,或者表关联时,某个字段里返回的数据或者相关联的两个字段的类型应该是number,但是,数据里有非number类型的.
复制 select*from aLEFTJOINSDH5.T_BUSINESS_PRODUCT_CONFIGEONa.COUNTCODE=E.B_ID a.COUNTCODE 类型是varchar2类型 但是E.B_ID的类型是NUMBER类型 因而保错 解决方法: number类型转字符串varchar2类型 代码语言:javascript 复制 select*from aLEFTJOINSDH5.T_BUSINESS_PRODUCT_CONFIGEONa.COUNTCODE=to_char(E....
ORA-01722invalid number问题 2020-09-07 14:29 −... 树樁 0 290 ORA-01722: invalid number 异常【我改】 2019-12-24 18:02 −我的情况是,在sql中两个字段相等最为条件时,这两个字段一个类型是字符串,一个是数字,而字符串类型的字段中有一条记录不能转成为数字造成的,解决方法,用 to_char将数字...
ORA-01722: invalid number 异常【我改】 我的情况是,在sql中两个字段相等最为条件时,这两个字段一个类型是字符串,一个是数字,而字符串类型的字段中有一条记录不能转成为数字造成的,解决方法,用 to_char将数字类型的字段转换为字符串再比较。 转: