varchar2 的在SQL中最大長度為4000,並非最大限制32676
SQL> edit
已將 檔案 afiedt.buf 寫入
declare
v_sql varchar2(32767);
begin
for i in 1..4000 loop
select v_sql || 'a' into v_sql from dual; --使用SQL
end loop;
dbms_output.put_line(length(v_sql));
end;
SQL> /
4000
PL/SQL 程序順利完成.
SQL> edit
已將 檔案 afiedt.buf 寫入
declare
v_sql varchar2(32767);
begin
for i in 1..4001 loop
select v_sql || 'a' into v_sql from dual; --使用SQL,有4000字的限制
end loop;
dbms_output.put_line(length(v_sql));
end;
SQL> /
declare
*
ERROR 在行 1:
ORA-01489: result of string concatenation is too long
ORA-06512: at line 5
SQL> edit
已將 檔案 afiedt.buf 寫入
declare
v_sql varchar2(32767);
begin
for i in 1..4001 loop
v_sql :=v_sql || 'a'; --使用變數去接,可超過4000字
end loop;
dbms_output.put_line(length(v_sql));
end;
SQL> /
4001
PL/SQL 程序順利完成.