ORA-01722: 无效数字的解决方法

本文介绍了在使用Java操作Oracle数据库时遇到的SQL注入问题及解决方案。通过对比不同查询语句的编写方式,详细解释了如何避免因代码直接拼接导致的ORA-01722错误,并推荐使用参数化查询来增强代码的安全性和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

List<Atl> atls = commonDao.findByQuery("from Atl a where a.code ="+code);
报错:ORA-01722: 无效数字

List<Atl> atls = commonDao.findByQuery("from Atl a where a.code <>null");
通过。
List<Atl> atls = commonDao.findByQuery("from Atl a where a.code =:code",
    new String[]{"code"},new Object[]{code});
这种写法不会报错,通过

解决:1,code的隐式转换
      2,nvl( ) 函数 从两个表达式返回一个非 null 值。 NVL(n1,n2) ,若n1为null,则返回n2,若n1不为null,则返回n1
返回值类型
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值