ORA-29280:nieprawidłowa ścieżka katalogu jest częstym błędem podczas wykonywania operacji obsługi plików w bazie danych Oracle
Przyczyna i rozwiązanie błędu
(1) Dzieje się tak, jeśli podany katalog nie istnieje w parametrze 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
Rezolucje
a. Zmień katalog zdefiniowany w UTL_FILE_DIR
b. Jeśli katalogu nie można zmienić i musimy użyć tego samego kodu, będziemy musieli dodać katalog w UTL_FILE_DIr
Kroki to pierwsza zmiana w pliku spfile, a następnie przetworzenie bazy danych Oracle, a następnie sprawdzenie
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. Jeśli możemy zmienić kod, możemy zacząć korzystać z katalogów Oracle. W takim przypadku nie musimy określać 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. Podajesz w nim niewłaściwą nazwę katalogu Oracle
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
Rezolucje
Podaj poprawną nazwę katalogu lub utwórz nową
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.
Mam nadzieję, że podoba Ci się szczegółowe wyjaśnienie błędu ORA-29280. Polub i przekaż opinię
Powiązane artykuły
ORA-29283 :nieprawidłowa operacja na pliku :sprawdź ten post, jak rozwiązać problem ORA-29283 :nieprawidłowa operacja na pliku. Jakie uprawnienia należy sprawdzić
ORA-29285:błąd zapisu pliku :ORA-29285:błąd zapisu pliku jest częstym błędem podczas wykonywania operacji obsługi plików. Sprawdź ten post z różnych powodów i rozwiązań, jak go rozwiązać
ORA-01652:nie można rozszerzyć segmentu tymczasowego :Błąd ORA-01652 zwykle dlatego, że gdy obszar tabel nie ma wolnego miejsca w obszarze tabel Stały i Tymczasowy w bazie danych Oracle
ORA-00936 brak wyrażenia :Dowiedz się, jak rozwiązać problem z ORA-00936 brak wyrażenia w oracle SQL. jakie są różne rozwiązania, jak możemy tego uniknąć, błędy Oracle dla tych błędów
ORA-00257:błąd archiwizatora. Połącz tylko wewnętrznie, aż do zwolnienia. :Dowiedz się, jak rozwiązywać problemy z błędem archiwizatora ORA-00257. Podłącz błąd tylko wewnętrzny.Różne rozwiązania i przykład podano krok po kroku.
ORA-00904 :Ten post zawiera opis i możliwe rozwiązania ORA-00904:nieprawidłowy identyfikator.Załączone są również wskazówki dotyczące rozwiązywania problemów
FND_FILE w aplikacjach Oracle
https://docs.oracle.com/database/121/ARPLS/u_file.htm