Oracle - Erstellen der text-Datei mithilfe der gespeicherten Prozedur
Brauche Hilfe zum erstellen von text-Datei mithilfe der gespeicherten Prozedur in oracle 10. Ich bin ganz neu hier also bitte guide mich von Anfang an.
Fand ich code und schuf Sie als gespeicherte Prozedur. Ich führen Sie es, und es ist GÜLTIG. Aber ich ausgeführt, bekam ich Fehler "INVALID FILE NAME... AT SYS.UTL_FILE..."
Habe ich zunächst ein Verzeichnis gewährt, dass read, write on directory.
CREATE OR REPLACE PROCEDURE refcursorkim IS
l_file utl_file.file_type;
l_file_name VARCHAR2(60);
BEGIN
l_file := utl_file.fopen('UTL_DIR', l_file_name, 'w');
SELECT 'KY' || TO_CHAR(SYSDATE, 'yyyymmdd') || '1.txt' INTO l_file_name FROM dual;
utl_file.putf(l_file,l_file_name);
utl_file.fclose(l_file);
END refcursorkim;
Ich weiß nicht, was mir fehlt, da ich nicht vertraut bin. Eine andere Sache, wird die Datei automatisch erstellt wird, in dem angegebenen Verzeichnis?
Hoffe Ihr könnte mir helfen. Vielen Dank und Gott segne!
InformationsquelleAutor user1249603 | 2012-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffnen Sie die Datei mit der richtigen Datei-Namen.
Ihren code (error out):
Werden sollte (Korrigiert):
Mehr hier: http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_file.htm#i1004619
Edit 1:
'A'
append-Modus.Was ist die Fehlermeldung, die Sie bekommen? Können Sie fügen Sie den code, den Sie verwenden, und was bekommen Sie? Eine vollständige Ausführung der Details?
Aktualisiert die Antwort. Check.
mit oracle 10g.Hier ist mein code:
CREATE OR REPLACE PROCEDURE refcursorkim IS l_file utl_file.file_type; l_file_name VARCHAR2(60); BEGIN SELECT 'KY' || TO_CHAR(SYSDATE, 'yyyymmdd') || '1.txt' INTO l_file_name FROM dual; l_file := utl_file.fopen('UTL_DIR', l_file_name, 'w'); utl_file.putf(l_file,l_file_name); utl_file.fclose(l_file); END refcursorkim; /
Fehler "ORA-29283: Ungültiger Dateivorgang | ORA-06512: at-SYS.UTL_FILE, Zeile 475" | ORA-29283: Ungültiger Dateivorgang | ORA-06512 bei SCHEMA_NAME.REFCURSORKIM, Zeile 9 | ODER-06512: in Zeile2Sie haben Zugang zu
'UTL_DIR'
? Kannst du versuchen, schriftlich in'/tmp'
?Ich habe versucht zu schreiben aber ich habe immer noch die gleiche Fehlermeldung... Gut, ich glaube, ich habe nur eine andere Methode verwenden andere als UTL_FILE. Ich danke Ihnen sehr für Ihre Zeit. wenn ich mehr Zeit habe, werde ich studieren UTL_FILE mehr. 🙂 Gottes Segen!
InformationsquelleAutor Guru