Oracle PL/SQL DBMS_SQL

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