sql >> Database >  >> RDS >> Oracle

Hoe ORA-29280 op te lossen:ongeldig mappad

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


  1. Hoe krijg ik een tabelscript in Oracle SQL Developer?

  2. MySQL-triggers kunnen geen rijen bijwerken in dezelfde tabel waaraan de trigger is toegewezen. Voorgestelde oplossing?

  3. Hoe u trigger-oproepen in een lus kunt vermijden in PostgreSQL 9.2.1

  4. SQL Server-transactielogboek — Deel 1