ORA-01480:STR 绑定值的结尾 Null 字符缺失 的问题原因及解决办法
本人在工作中,从测试库往正式库中复制记录,用 select for
update 报错:ORA-01480:STR 绑定值的结尾 Null 字符缺失 ,遂上网
查找,都说是有非法字符(半个引号) 或者长度超长造成的。根据本
人分析,应该不是上述原因引起,因为在测试库中没有问题。但还
是验证如下:
1、非法字符:将字符串取一半导入,正常提交,不报错;取另
一半导入,也不报错;排除有非法字符的可能性。
2、在 pl/sql 工具中查看导入字段为 2110bytes,而设置的长度是
3000bytes,全英文,正式库和测试库设置完全相同;
后上网查阅 oracle 相关文档后发现:某个 bu"er 缓存的默认长度
是 2000bytes,推断不是字段超长,而是超过缓存大小 ;
最后想到一个解决办法,只要 update 时,缓存中内容不大于
2000bytes 就可以了。因此先导一半内容到字段里,然后通过
Update 表 1 set 字段 1=字段 1||’后半段字符串’;
提交,顺利通过。完美解决。
后记:本问题也可以通过修改默认值来解决,但本人一是懒,二
是怕把数据库改崩溃了;纯属个人见解,如有差错请见谅,为了赚
CSDN 积分下东西,各位大神见谅~