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