发布网友 发布时间:2022-04-07 18:31
共7个回答
热心网友 时间:2022-04-07 20:01
出现错误的原因是varchar2类型列中存储了非number型字符。热心网友 时间:2022-04-07 21:19
因为你写是100 是个数字,oralce会自动 把 i 字段 转化成数字进行比较,那么,如果你 B库的 i 字段里如果有不能转化成数字的数据 就会报这个错了。热心网友 时间:2022-04-07 22:53
你是否是在2个库中定义的I的类型不一样?I为varchar的时候是可以判断是否为100的 这个时候的100是一个字符 不是数字。如果要使用数字来进行判断的话 应该使用 to_num(i) = 100热心网友 时间:2022-04-08 00:45
那是因为在 B表中存在字符导致的,你用如下语句就不会报错热心网友 时间:2022-04-08 02:53
建议写sql时候sql语句数据类型跟表中保持一致,这样执行效率会高一些的。select * from t where i =‘100 ’,虽然有时oracle会自动转换但会降低效率热心网友 时间:2022-04-08 05:17
应该不会报错这个。除非你原来i字段中有字符,导致不能内部转换。热心网友 时间:2022-04-08 07:59
后面number用to_char转换一下