ora-01480 trailing null missing from str bind value

【问题】用PL/SQL更改数据,表中的字段为varchar2(4000),修改表中的一个数据时直接用for update 做数据更改,数据的长度为2000多,但是在提交时报ORA-01480:trailing null missing from STR bind value错误

 

【分析】

大概有两种原因,一:pl/sql工具导致的,因为toad没有出现这个问题。二:OCI里面包含的变量长度问题,出现这个错误,说明字符串被中间截断了,不能正确的解析,

 

操作方法:

             create table test
               (name varchar2(4000))
               select * from test for update插入下面数据是可以的         

  中国企业报股份有限公司旗下核心媒体《中国企业报》是中国唯一以企业和企业家为报道核心的中央级报纸。由中国企业联合会、中国企业家协会主管,国内外公开发行,同时赠阅全国人大、全国政协、中央国家机关、国资委系统以及世界企业500强、中国企业500强和中企联会员单位。《中国企业报》是一张专为中国企业创办的报纸。1988年1月4日,由国家经委主办,中国企业管理协会承办的《中国企业报》正式创刊。陈云同志为报纸题写了报头,邓力群任报社名誉顾问,袁宝华任报社名誉社长。从1988年开办至今,秉承“面向企业、为企业服务”的宗旨,《中国企业报》亲历并记录着中国企业的改革进程,同时伴随着中国企业的发展壮大,自己也在不断成长。2010年底,《中国企业报》响应国家文化体制改革要求,在行业内率先进行了转企改制,组建成

 

 查看数据的长度:

        SQL> select lengthb(name) from test;
 
LENGTHB(NAME)
-------------
          999

 当插入再添加一个汉字时,就报错,说明PL/SQL工具中只能插入1000个字节。

使用insert into可以解决这个问题,如下:

insert into test values('中国企业报股份有限公司旗下核心媒体《中国企业报》是中国唯一以企业和企业家为报道核心的中央级报纸。由中国企业联合会、中国企业家协会主管,国内外公开发行,同时赠阅全国人大、全国政协、中央国家机关、国资委系统以及世界企业500强、中国企业500强和中企联会员单位。《中国企业报》是一张专为中国企业创办的报纸。1988年1月4日,由国家经委主办,中国企业管理协会承办的《中国企业报》正式创刊。陈云同志为报纸题写了报头,邓力群任报社名誉顾问,袁宝华任报社名誉社长。从1988年开办至今,秉承“面向企业、为企业服务”的宗旨,《中国企业报》亲历并记录着中国企业的改革进程,同时伴随着中国企业的发展壮大,自己也在不断成长。2010年底,《中国企业报》响应国家文化体制改革要求,在行业内率先进行了转企改制,组建成立《中国企业报》股份有限公司。');

commit;

 

总结:

                   1 PL/SQL工具使用for update插入数据时,只能插入1000个字节,否则会报错,是工具的问题

                   2 数据库中并没有问题

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值