Plsql clob

Hallo,
ich so ein kleines Problem und zwar:
ich soll eine Tabelle exportieren, genaue gesagt einige spalten der Tabelle. Nun es gibt kein Befehl zu export der Spalten, ausser mittels SPOOL die Selektion rauszuschreiben und mit SQLLOADER die Daten in die andere Tabelle reinpumpen.
Eine Spalte sowohl bei der ExportTabelle als auch bei ImportTabelle ist CLOB. Also befor ich an echte Daten rangehe dachte ich, teste mal.
Ich habe auch PLSQL Procedure gefunden mit der ich die XML’s, oder Text-Dateien in meine TestTabelle in die CLOB-Spalte reinpumpe. Das geht ohne Problem, egal welche TXT oder XML ich dazu nehme.
Nun beim Lesen aus der CLOB-Spalte ist schwirig.
Dazu habe ich auch ein PLSQL Script gefunden und zwar dieser:

create or replace
PROCEDURE Write_CLOB_To_XML_File
IS

clob_loc CLOB;
buffer VARCHAR2(32767);
buffer_size CONSTANT BINARY_INTEGER := 32767;
amount BINARY_INTEGER;
offset NUMBER(38);

file_handle UTL_FILE.FILE_TYPE;
directory_name CONSTANT VARCHAR2(80) := ‚DOCUMENTS‘;
new_xml_filename CONSTANT VARCHAR2(80) := ‚Export.xml‘;

BEGIN

DBMS_OUTPUT.ENABLE(100000);

SELECT xml_file INTO clob_loc
FROM test_clob
WHERE id = 1;
file_handle := UTL_FILE.FOPEN(
location => directory_name,
filename => new_xml_filename,
open_mode => ‚w‘,
max_linesize => buffer_size);
amount := buffer_size;
offset := 1;
WHILE amount >= buffer_size
LOOP
DBMS_LOB.READ(
lob_loc => clob_loc,
amount => amount,
offset => offset,
buffer => buffer);
offset := offset + amount;
UTL_FILE.PUT(
file => file_handle,
buffer => buffer);
UTL_FILE.FFLUSH(file => file_handle);
END LOOP;

UTL_FILE.FCLOSE(file => file_handle);
exception WHEN OTHERS THEN
dbms_output.put_line('Fehler: '||sqlerrm);
END;
*************************************************
Ich bekommen ab und zu mal diese Fehlermeldung:
ORA-06502: PL/SQL: numerischer oder Wertefehler: Zeichenfolgenpuffer zu klein
*****************
Die XML-Datei die ich in die Tabelle importiert habe konnte ich vorher mit XMLSpy ganznormal öffnen und die bearbeiten. Aber beim Rauslesen passiert mir dieser Fehler s.o. Also ich komme irgendwie nicht weiter, also ich nehme jede Hilfe …

Ich muss noch dazu sagen eigenige importierte XML’s konnte ich ohne Probleme wieder rausschreiben und bei einigen kommt der Fehler.

Danke im Voraus
Gruß
Stella

*************************************************

Ich bekommen ab und zu mal diese Fehlermeldung:
ORA-06502: PL/SQL: numerischer oder Wertefehler:
Zeichenfolgenpuffer zu klein
*****************
Die XML-Datei die ich in die Tabelle importiert habe konnte
ich vorher mit XMLSpy ganznormal öffnen und die bearbeiten.
Aber beim Rauslesen passiert mir dieser Fehler s.o. Also ich
komme irgendwie nicht weiter, also ich nehme jede Hilfe …

Ich muss noch dazu sagen eigenige importierte XML’s konnte ich
ohne Probleme wieder rausschreiben und bei einigen kommt der
Fehler.

Danke im Voraus
Gruß
Stella

-:*************************************************

Ich bekommen ab und zu mal diese Fehlermeldung:
ORA-06502: PL/SQL: numerischer oder Wertefehler:
Zeichenfolgenpuffer zu klein
*****************

  • Nun, die Fehlermeldung sagt ja schon alles. Einige der XML Files sind zu gross für deinen Buffer, den du definiert hast. Du wirst die XML Stückweise einlesen müssen.