create table t_ls(c1 int not null, c2 clob null, constraint pk_t_ls primary key (c1));
declare
s varchar2(32000):='';
i int;
begin
for i in 1..3000 loop
s := s||'0123456789';
end loop;
i := (sysdate-trunc(sysdate))*24*3600;
insert into t_ls values(i, s);
commit;
end;
/
select dbms_lob.getlength(c2) from t_ls;
declare
s varchar2(32000):='';
i int;
begin
for i in 1..3000 loop
s := s||'0123456789';
end loop;
i := (sysdate-trunc(sysdate))*24*3600;
insert into t_ls values(i, s);
commit;
end;
/
select dbms_lob.getlength(c2) from t_ls;
估计你的这语句一样会遇到和我同样的报错
'说sql有个literal长度太长'我的意思是:
当我往oracle表的1long字段中写一大于4000字符的字符串变量时,ORACLE报错,说sql有个literal长度太长
ORA-01704: string literal too long
我的为:398526289
你的SQL作为过程没问题,
但我们在SQL中直接传送字符串就失败。
我们想在perl中直接写数据另外:结束后如何把我的分给你?