开发组同事发了一条SQL语句,说执行报错ORA-017220: 无效数字。
我看了下语句,没有类型转换的函数,判断一定是发生了隐形的类型转换。果然,查到一张表的字段有为null,有空格,有'/',由于发生了隐身转换,所以报错。
问题是解决了,但为什么造成这种问题呢,是我们的程序写的不好,页面端控制不严。这不是根源,根源是在做数据库设计的时候就要把握字段的类型,要让这些非法字段无法插入进去,会省很多麻烦。
开发组同事发了一条SQL语句,说执行报错ORA-017220: 无效数字。
我看了下语句,没有类型转换的函数,判断一定是发生了隐形的类型转换。果然,查到一张表的字段有为null,有空格,有'/',由于发生了隐身转换,所以报错。
问题是解决了,但为什么造成这种问题呢,是我们的程序写的不好,页面端控制不严。这不是根源,根源是在做数据库设计的时候就要把握字段的类型,要让这些非法字段无法插入进去,会省很多麻烦。