Extrahieren Sie BLOB-Daten aus der Oracle-Datenbank und konvertieren Sie zur ursprünglichen Datei
Ich versuche zu extrahieren BLOB
Daten und konvertieren Sie die ursprüngliche Datei (pdf -, rtf -, doc -, etc). Unten ist mein code:
DECLARE
l_file UTL_FILE.FILE_TYPE;
l_buffer RAW(32767);
l_amount BINARY_INTEGER := 32767;
l_pos NUMBER := 1;
l_blob BLOB;
l_blob_len NUMBER;
BEGIN
SELECT file_contents
INTO l_blob
FROM irb_files
WHERE FILE_NAME = 'STD_FlipBook_Religion2013.doc';
l_blob_len := DBMS_LOB.getlength(l_blob);
-- Open the destination file.
l_file := UTL_FILE.fopen('IRB','STD_FlipBook_Religion2013.doc','wb','W');
DBMS_LOB.read(l_blob, l_amount, l_pos, l_buffer);
UTL_FILE.put_raw(l_file, l_buffer, TRUE);
l_pos := l_pos + l_amount;
-- Close the file.
UTL_FILE.fclose(l_file);
END;
Ich bin relativ neu auf all dies, so bin ich sorry, wenn mein code ist ein bisschen off. Die Fehler ich erhalte, ist:
Error report:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 18
06502. 00000 - "PL/SQL: numeric or value error%s"
*Cause:
*Action:
Jegliche Hilfe würde sehr geschätzt werden.
Datenbank-Infos:
Oracle9i Enterprise Edition Release 9.2.0.5.0
Die Linie 18???? Bitte auch die Tabelle schema.
InformationsquelleAutor Brock Davis | 2013-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist das problem mit dieser Zeile:
Den docs zeigen die Signatur der Funktion unter. Der Letzte parameter, den Sie haben, 'W', entspricht dem 'max_linesize' erwartet wird, das für eine Zahl sein. So, Sie können nicht konvertieren 'W' eine Zahl. Ich denke, man kann einfach den Standard-Wert in Ihrem Fall, so entfernen Sie einfach die " W " - parameter.
(ab Oracle 9.2-docs)
FOPEN-Funktion
Diese Funktion öffnet eine Datei. Können Sie die maximale Zeile Größe von höchstens 50 Dateien gleichzeitig öffnen. Siehe auch "FOPEN_NCHAR Funktion".
Syntax
UTL_FILE.FOPEN (
Lage IN VARCHAR2,
mit dem Namen IN VARCHAR2,
open_mode IN VARCHAR2,
max_linesize IN BINARY_INTEGER)
ZURÜCK file_type;
Parameter
Tabelle 95-3 Parameter der Funktion FOPEN
Parameter Beschreibung
Lage
Verzeichnis Speicherort der Datei.
mit dem Namen
Dateiname, einschließlich der Erweiterung (Dateityp), ohne Verzeichnispfad. In Unix, der mit dem Namen nicht Ende mit /.
open_mode
Gibt an, wie die Datei geöffnet wird. Modi beinhalten:
r--text Lesen
w--text schreiben
--append text
Wenn Sie versuchen, eine Datei zu öffnen, die nicht existiert, mit einem Wert für open_mode, dann wird die Datei erstellt und im Schreibmodus.
max_linesize
Maximale Anzahl der Zeichen pro Zeile, einschließlich des neue-Zeile-Zeichen, das für diese Datei. (Minimalwert 1, Maximalwert 32767). Der Standard ist etwa 1000 bytes.
Jetzt wird die Datei erstellt, aber nicht korrekt exportiert, es ist einfach nur Binär-code
Dude, ich habe dir eine perfekt gültige Antwort für die ursprüngliche Frage, die Sie gebucht. Nun, die Antwort ist nicht mehr richtig, denn Sie lief in ein neues problem?? Nicht cool. Stellen Sie eine neue Frage.
Mein Fehler, die auf deaktivieren Sie als Antwort. Hab es alles herausgefunden. Ich danke Ihnen, sir
InformationsquelleAutor OldProgrammer