Oracle
 sql >> Database >  >> RDS >> Oracle

Come risolvere ORA-29280:percorso di directory non valido

ORA-29280:il percorso della directory non valido è un errore comune quando si eseguono operazioni di gestione dei file nel database Oracle

Motivo e risoluzione dell'errore

(1) Ciò si verifica se la directory specificata non esiste nel parametro utl_file_dir init.ora

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

Risoluzioni

un. Modificare la directory definita in UTL_FILE_DIR

b. Se la directory non può essere modificata e dobbiamo utilizzare lo stesso codice, dovremo aggiungere la directory in UTL_FILE_DIr

I passaggi sarebbero la prima modifica in spfile, quindi ricicla il database di Oracle e quindi controlla

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. Se possiamo cambiare il codice, possiamo iniziare a usare le directory di Oracle. In tal caso, non è necessario specificare utl_file_dir

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. Invii il nome della directory Oracle sbagliato

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

Risoluzioni

Specificare il nome della directory corretto o crearne uno nuovo

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.

Spero che ti piaccia la spiegazione dettagliata dell'errore ORA-29280. Metti mi piace e fornisci il feedback

Articoli correlati

ORA-29283:operazione su file non valida:dai un'occhiata a questo post su come risolvere ORA-29283:operazione su file non valida. Quali autorizzazioni devono essere verificate
ORA-29285:errore di scrittura del file:ORA-29285:l'errore di scrittura del file è l'errore comune durante l'esecuzione dell'operazione di gestione dei file. Dai un'occhiata a questo post su vari motivi e soluzioni su come risolverlo
ORA-01652:impossibile estendere il segmento temporaneo:errore ORA-01652 in genere perché quando il tablespace non ha spazio libero nel tablespace permanente e temporaneo nel database Oracle
ORA-00936 espressione mancante:scopri la risoluzione dei problemi ORA-00936 espressione mancante in Oracle SQL. quali sono le varie soluzioni, come evitarlo, bug Oracle per questi errori
ORA-00257:errore dell'archiviatore. Collega solo interno, fino a quando non viene liberato. :Scopri come risolvere l'errore dell'archiver ORA-00257. Collegare solo l'errore interno. Varie risoluzioni ed esempi forniti passo dopo passo.
ORA-00904:Questo post per la descrizione e le possibili soluzioni di ORA-00904:identificatore non valido. Vengono forniti anche suggerimenti per la risoluzione dei problemi
FND_FILE nelle app Oracle
https://docs.oracle.com/database/121/ARPLS/u_file.htm