频道栏目
首页 > 资讯 > Oracle > 正文

数据库报“ORA-01722: 无效数字”错误的解决办法

18-07-25        来源:[db:作者]  
收藏   我要投稿

报错信息:ORA-01722: 无效数字

问题SQL:


SELECT A.*,
B.FUND_CODE AS FUND_CODE,
 B.FUND_FULLNAME AS Fund_Fullname
FROM BSP_SYS_ATTACH A,BSP_FUND_BASE B
WHERE A.ENTITY_ID=B.FUND_ID

/*
    此处A.ENTITY_ID的类型为VARCHAR;
    B.FUND_ID的类型为NUMBER;
    两者类型不匹配所以报错。
*/

更改后正确SQL:

SELECT A.*,
B.FUND_CODE AS FUND_CODE,
 B.FUND_FULLNAME AS Fund_Fullname
FROM BSP_SYS_ATTACH A,BSP_FUND_BASE B
WHERE A.ENTITY_ID=TO_CHAR(B.FUND_ID)

/*
    类型转换函数to_char()
*/

拓展:

将日期型转换为字符串TO_CHAR()

SELECT 
TO_CHAR (SYSDATE, 'YYYY-MM-DD HH24:MI:SS AM')
FROM DUAL

将数字型转换为字符串TO_CHAR()

SELECT 
TO_CHAR(123.45678,'$99999.999') 
FROM DUAL;

将字符换转换为日期TO_DATE()

 
SELECT 
TO_DATE ('20100913', 'YYYY-MM-DD')
FROM DUAL;

将字符串转换为数字TO_NUMBER()

SELECT 
TO_NUMBER('01') 
FROM DUAL;
相关TAG标签
上一篇:React项目的国际化解析
下一篇:前端常见概括性问题
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站