Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 ;)

Geschrieben

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

Geschrieben

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"

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...