Nclob处理的问题
SQL> desc tbl3;
Name Type Nullable Default Comments
----- ------ -------- ------- --------
IDX NUMBER Y
CNAME NCLOB Y
下面的一个存储过程,我传进去很长的字符串,为什么每次存到tbl3表里面的cname只有一部分?
CREATE OR REPLACE PROCEDURE TIF_ADD_NEW(SQL_COMMAND IN NCLOB)
IS
S NCLOB;
tmpS VARCHAR2(2000);
iPOS NUMBER;
BEGIN
S := SQL_COMMAND;
INSERT INTO TBL3 VALUES(SEQ_TBL3.NEXTVAL,s);
iPOS := INSTR(S, '; ');
WHILE iPOS> 0
Loop
tmpS := SUBSTR(S,1,iPOS-1);
begin
tmps := replace(tmps,chr(13), ' ');
execute immediate tmpS;
exception when others then
rollback;
end;
S := SUBSTR(S,iPOS+1,LENGTH(S)-iPOS);
IPOS := INSTR(S, '; ');
END LOOP;
COMMIT;
END;
好像nclob读取和存储有另外的方法,请指教
------解决方案--------------------NCLOB是固定长度的多字节Character Large Object,是不是长度小了
------解决方案--------------------tmpS VARCHAR2(2000);是不是定义小了?