Hallo zusammen,
weis einer zufällig, ob es eine maximale Länge des SQL-Statements bei sys.dbms_sql.parse bzw. sys.dbms_sql.fetch existiert? Ich habe derzeit 255 als Obergrenze in Verdacht…
MfG Georg V.
P.S.: Oracle 10.2.0.1.0 aber dbms_sql gibt es schon ab 7.x.y.z
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