ORA-29280:Ungültiger Verzeichnispfad ist ein häufiger Fehler bei Dateiverarbeitungsvorgängen in der Oracle-Datenbank
Grund und Lösung für den Fehler
(1) Dies tritt auf, wenn das angegebene Verzeichnis nicht im Parameter utl_file_dir init.ora
vorhanden istsqlplus / as sysdba show parameter utl_file_dir /tmp, /usr/tmp/ SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('/u500','j', 'w'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29280: invalid directory path ORA-06512: at "SYS.UTL_FILE", line 41 ORA-06512: at "SYS.UTL_FILE", line 478 ORA-06512: at line 4
Auflösungen
a. Ändern Sie das Verzeichnis, das in UTL_FILE_DIR
definiert istb. Wenn das Verzeichnis nicht geändert werden kann und wir denselben Code verwenden müssen, müssen wir das Verzeichnis in UTL_FILE_DIr
hinzufügenSchritte wären die erste Änderung in spfile, dann die Oracle-Datenbank recyceln und dann prüfen
sqlplus / as sysdba alter system set utl_file_dir='/tmp/','/usr/tmp','/u500' scope =spfile; shutdown immediate startup SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('/u500','y', 'w'); end; / 2 3 4 5 6 PL/SQL procedure successfully completed.
c. Wenn wir den Code ändern können, können wir anfangen, Oracle-Verzeichnisse zu verwenden. In diesem Fall müssen wir utl_file_dir
nicht angebenSQL> create directory TESTDIR as '/u500'; SQL> grant read,write on directory TESTDIR to public; SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('TESTDIR','y', 'w'); end; / PL/SQL procedure successfully completed.
2. Sie geben den falschen Oracle-Verzeichnisnamen ein
SQL> declare F_LOG utl_file.file_type; begin 2 F_LOG := utl_file.fopen('TESTDIR','y', 'w'); end; 3 4 5 6 / declare * ERROR at line 1: ORA-29280: invalid directory path ORA-06512: at "SYS.UTL_FILE", line 41 ORA-06512: at "SYS.UTL_FILE", line 478 ORA-06512: at line 4 SQL> select * from dba_directories where DIRECTORY_NAME='TESTDIR'; no rows selected
Auflösungen
Geben Sie den korrekten Verzeichnisnamen an oder erstellen Sie einen neuen
SQL> create directory TESTDIR as '/u500'; SQL> grant read,write on directory TESTDIR to public; SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('TESTDIR','y', 'w'); end; / 2 3 4 5 6 PL/SQL procedure successfully completed.
Ich hoffe, Ihnen gefällt die ausführliche Erklärung des Fehlers ORA-29280. Bitte liken und Feedback geben
Verwandte Artikel
ORA-29283:Ungültiger Dateivorgang:Sehen Sie sich diesen Beitrag an, um zu erfahren, wie ORA-29283:Ungültiger Dateivorgang behoben werden kann. Welche Berechtigungen müssen überprüft werden? br/>ORA-01652:Temp-Segment kann nicht erweitert werden :ORA-01652 Fehler normalerweise, weil wenn der Tablespace keinen freien Speicherplatz im permanenten und temporären Tablespace in der Oracle-Datenbank hat
ORA-00936 fehlender Ausdruck :Lernen Sie die Fehlerbehebung bei ORA-00936 Fehlender Ausdruck in Oracle SQL. Was sind verschiedene Lösungen, wie wir es vermeiden können, Oracle-Bugs für diese Fehler
ORA-00257:Archivierungsfehler. Nur intern verbinden, bis freigegeben. :Erfahren Sie, wie Sie den Archivierungsfehler ORA-00257 beheben. Nur internen Fehler verbinden. Verschiedene Lösungen und Beispiele werden Schritt für Schritt bereitgestellt.
ORA-00904 :Dieser Beitrag enthält eine Beschreibung und mögliche Lösungen für ORA-00904:Ungültige Kennung. Tipps zur Fehlerbehebung werden ebenfalls bereitgestellt
FND_FILE in Oracle-Apps
https://docs.oracle.com/database/121/ARPLS/u_file.htm