ORA-01722:无效数字
Posted 何时、微笑成了种奢求
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-01722:无效数字相关的知识,希望对你有一定的参考价值。
今天写查询语句,关联多张表,出现了这个错误。
结果发现时字段的数据类型不一致。
select * from table_a a,table_b b where to_char(a.project_id)=b.project_id(+) --把project_id的类型转换成字符串类型,使其保持一致。
1.关联时转换一下数据类型;
2.或者修改表中的字段。
附录:
1、TO_CHAR() 本函数又可以分三小类,分别是
①转换字符->字符TO_CHAR(c):将nchar,nvarchar2,clob,nclob类型转换为char类型;
select TO_CHAR(\'AABBCC\') from DUAL;
②转换时间->字符TO_CHAR(d[,fmt]):将指定的时间(data,timestamp,timestamp with time zone)按照指定格式转换为varchar2类型;
select TO_CHAR(sysdate,\'yyyy-mm-dd hh24:mi:ss\') from DUAL;
③转换数值->字符TO_CHAR(n[,fmt]):将指定数值n按照指定格式fmt转换为varchar2类型并返回;
select TO_CHAR(-100, \'L99G999D99MI\') from DUAL; select to_char(123456) from DUAL;
2、TO_NUMBER(c[,fmt[,nls]]) 将char,nchar,varchar2,nvarchar2型字串按照fmt中指定格式转换为数值类型并返回。
select TO_NUMBER(\'-100.00\', \'9G999D99\') from DUAL; select to_number(\'123456\') from DUAL;
ok。
以上是关于ORA-01722:无效数字的主要内容,如果未能解决你的问题,请参考以下文章