ITPub博客

首页 > 数据库 > Oracle > 往数据类型为clob的表列直接insert或update长度大于4000会报字符串太长错误

往数据类型为clob的表列直接insert或update长度大于4000会报字符串太长错误

原创 Oracle 作者:shuangoracle 时间:2011-07-19 16:19:22 0 删除 编辑
SQL> drop table t;
Table dropped
SQL> create table t(para2 clob);
Table created
直接更新:
SQL> update t set para2 ='***...***';--8000个*
update t set para2 ='***...***';--8000个*
ORA-01704: string literal too long
SQL>
直接插入:
SQL> insert into t(para2) values('***...***');--8000个*
insert into t(para2) values('***...***');--8000个*
ORA-01704: string literal too long
可以通过PL/SQL用变量实现:
SQL> declare
2 v_sql clob;
3 begin
4 v_sql := rpad('*', 4000, '*') || rpad('*', 4000, '*');--8000个*
5 insert into t(para2) values(v_sql);
6 commit;
7 end;
8 /
PL/SQL procedure successfully completed
SQL> select * from t;
PARA2
----------------
***...***** --8000个*
SQL> select t.*,length(t.para2) para2_length from t;
PARA2 PARA2_LENGTH
-------------- ------------
***...***** (8000个*) 8000
[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24496749/viewspace-1052723/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: rpad和lpad
请登录后发表评论 登录
全部评论

注册时间:2010-08-25

  • 博文量
    84
  • 访问量
    242684