当ln_length为4000个字符或更少时,我有以下PLSQL块成功,但当ln_length为>时,失败并显示“ORA-01460:未请求的未实现或不合理的转换”。 4000个字符。
该块是:
DECLARE
ls_string VARCHAR2(32767);
ls_temp VARCHAR2(32767);
ln_length NUMBER := 4000;
BEGIN
ls_string := '';
FOR i IN 1..ln_length LOOP
ls_string := ls_string || 'x';
END LOOP;
SELECT REPLACE(ls_string,'bob')
INTO ls_temp FROM dual;
END;
我如何编写一段代码,以满足长达32k的字符串?
答案 0 :(得分:4)
没有9i可以测试,但也许这会解决它:
取代:
SELECT REPLACE(ls_string,'bob')
INTO ls_temp FROM dual;
使用:
ls_temp := REPLACE(ls_string,'bob');
RDBMS引擎仅支持VARCHAR2最多4000个,而PL / SQL最多支持32767个。避免进入数据库进行REPLACE操作(无论如何都是这样)并且它似乎工作(至少w / 10g)