为啥这么写会报错,这个sql应该怎么改写?希望大家伙能指教应该怎么写才是正确的!
你先运行前面没加条件的语句看看是不是条件的问题
再排查一下是那个条件的问题
ORA-01722: invalid number 这个错误提示一般是数据库表字段与sql中赋值的数据类型不一致导致,请检查一下查询条件中的字段的数据类型与实际赋值的数据类型是否一致,如果还有疑问可以继续提问。
如果帮助,欢迎采纳!
你的 AND sfaa010 = sfaa071 这个有问题 ,sfaa010 和 sfaa071 这是两个字段 ,所以出错了,把这一部分删除即可,或者进行修改,选择合适的值进行作为条件值即可,如果有帮助,欢迎采纳。
把表结构贴出来一下,这个报错是因为存在非数字的字符串无法隐式转换成数字,比如如果sfaaent里包含有非数字的内容,那么用等于66就会报错,要把 sfaaent=66 改成 sfaaent='66'
1)执行的sql语句中包含显示或者隐式的类型转换, 将字符串转换到数字类型的时候失败,(因为)字符内容包含非数字字符。解决方法:检查SQL语句是否包含对字段类型的转换。
2)将一个字符(varchar2)字段绑定(DefineByPos)到数字(number)类型,从而在取结果时,转换失败。解决方法:检查绑定变量和对应的字段是否顺序对应,数据类型对应