oracle报错ORA-01722: invalid number|varchar2不能改为clob

//state为String类型,当传入小数如"0.1"时,会报错invalid number
and a.w_state = :state
这是因为Oracle数据库在进行隐式数据类型转换时,如果字符串类型的参数可以成功转换为数值型,则会进行类型转换并比较。而在此例中,‘11’可以被正确转换为一个整数,因此不会报错,而如果您将参数state设置为字符串类型的’0.1’,则会导致SQL语句执行错误,提示"ORA-01722: invalid number"。

这是因为在SQL语句中进行了等值比较,而Oracle数据库默认情况下会使用隐式数据类型转换,将所有参数都转换为与表字段类型相同的类型后再进行比较。由于w_state字段的类型为数值型,而参数state的类型为字符串型,因此会导致无法进行正确的比较,从而报错。

ORA-22858varchar2不能改为clob

oracle 表 删除字段
ORA-22858: 数据类型的变更无效varchar2类型转换为clob类型


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部