Hallo zusammen,
Lösung des Problems ist es dbms_parse dieses Statment in 255 Zeichen-Päckchen zukommen zu lassen.
DECLARE
cnt number;
v\_stat varchar2(32000);
v\_stat\_s sys.dbms\_sql.varchar2s; -- Statement in 255 Byte-Blöcken
BEGIN
/\* v\_stat enthält mehr als 255 Zeichen \*/
c\_stat := sys.dbms\_sql.open\_cursor;
cnt := 1;
while length(v\_stat)\>255 LOOP
v\_stat\_s(cnt) := substr(v\_stat,1,255);
v\_stat := substr(v\_stat,256);
cnt := cnt +1;
END LOOP;
v\_stat\_s(cnt) := v\_stat;
dbms\_output.put\_line (cnt||' Teilstuecke');
sys.dbms\_sql.parse(c\_stat,v\_stat\_s,1,cnt,NULL, sys.dbms\_sql.native);
/\* gelöscht \*/
END;
Literatur: Oracle-Doc-ID: 77470.1