Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So lösen Sie ORA-29280:Ungültiger Verzeichnispfad

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 ist
sqlplus / 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 ist

b. 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ügen

Schritte 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 angeben
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;
/
  
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