Veröffentlicht 20. Mai 201114 j Hallo, weiß jemand eine Möglichkeit wie ich einen CREATE TABLE der ca 13000 Zeichen lang ist und in einem CLOB liegt mit einem EXECUTE IMMEDIATE ausführen kann ? Ist eine Oracle 11g DB.... Danke schonmal für Ideen
20. Mai 201114 j Hi, selektier dir den CLOB in eine entsprechend lange VARCHAR2 Variable (in PL/SQL dürfen die bis zu 32K groß sein, nicht nur 4000 byte) und den übergiebst Du dann an Execute Immediate. Dim
20. Mai 201114 j Wenn ich den VARCHAR2 Wert über 4000 setze kommt der Fehler: "ORA-01461: Ein LONG-Wert kann nur zur Einfügung in eine LONG-Spalte gebunden werden"
20. Mai 201114 j Klar, denn Du gehst damit in den SQL Kontext und dort sind wieder nur 4000 Byte erlaubt. Du musst das komplett im PL/SQL Kontext machen: declare l_myClob clob; l_buf varchar2(32000); l_amount binary_integer:=1; begin select myClobColumn,dbms_lob.getlength(myClobColumn) into l_myClob,l_amount from clobTable where id=1; dbms_lob.read(l_myClob,l_amount,1,l_buf); dbms_output.put_line(l_buf); execute immediate l_buf; end; / Die Doku dazu findest Du hier Dim
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.