ORA-29280:ongeldig directorypad is een veelvoorkomende fout bij het uitvoeren van bestandsverwerkingsbewerkingen in de Oracle-database
Reden en oplossing voor de fout
(1) Dit gebeurt als de opgegeven map niet bestaat in de parameter 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
Oplossingen
a. Wijzig de map die is gedefinieerd in UTL_FILE_DIR
b. Als de directory niet kan worden gewijzigd en we dezelfde code moeten gebruiken, moeten we de directory toevoegen in UTL_FILE_DIr
Stappen zijn de eerste wijziging in spfile, dan de Oracle-database recyclen en dan controleren
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. Als we de code kunnen veranderen, kunnen we orakeldirectories gaan gebruiken. In dat geval hoeven we utl_file_dir niet op te geven
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. U specificeert de verkeerde orakel-directorynaam erin
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
Oplossingen
Geef de juiste mapnaam op of maak de nieuwe aan
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.
Ik hoop dat je de gedetailleerde uitleg van de ORA-29280-fout leuk vindt. Vind het leuk en geef feedback
Gerelateerde artikelen
ORA-29283:ongeldige bestandsbewerking:bekijk dit bericht over hoe u ORA-29283 kunt oplossen:ongeldige bestandsbewerking. Welke toestemming moet worden gecontroleerd
ORA-29285:bestandsschrijffout:ORA-29285:bestandsschrijffout is de veelvoorkomende fout tijdens het verwerken van bestanden. Bekijk dit bericht over verschillende redenen en oplossingen voor het oplossen ervan
ORA-01652:kan tijdelijk segment niet uitbreiden :ORA-01652 fout meestal omdat wanneer de tablespace geen vrije ruimte heeft in Permanente en Tijdelijke tablespace in Oracle database
ORA-00936 ontbrekende expressie:Learn troubleshooting ORA-00936 ontbrekende uitdrukking in Oracle SQL. Wat zijn verschillende oplossingen, hoe kunnen we dit vermijden, Oracle-bugs voor deze fouten
ORA-00257:archiverfout. Sluit alleen intern aan, totdat het wordt vrijgemaakt. :leer hoe u problemen met de ORA-00257-archiveringsfout kunt oplossen. Verbind alleen interne fout. Verschillende oplossingen en voorbeelden worden stap voor stap geleverd.
ORA-00904:dit bericht voor de beschrijving en mogelijke oplossingen van ORA-00904:ongeldige identifier.troubleshooting-tips worden ook verstrekt
FND_FILE in oracle-apps
https://docs.oracle.com/database/121/ARPLS/u_file.htm