Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách giải quyết ORA-29280:đường dẫn thư mục không hợp lệ

ORA-29280:đường dẫn thư mục không hợp lệ là lỗi thường gặp khi thực hiện các thao tác xử lý tệp trong cơ sở dữ liệu Oracle

Lý do và Giải pháp cho lỗi

(1) Điều này xảy ra nếu thư mục được chỉ định không tồn tại trong tham số 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

Giải pháp

một. Thay đổi thư mục được xác định trong UTL_FILE_DIR

b. Nếu không thể thay đổi thư mục và chúng tôi phải sử dụng cùng một mã, chúng tôi sẽ cần thêm thư mục trong UTL_FILE_DIr

Các bước sẽ là thay đổi đầu tiên trong spfile, sau đó tái chế cơ sở dữ liệu oracle và sau đó kiểm tra

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. Nếu chúng ta có thể thay đổi mã, chúng ta có thể bắt đầu sử dụng thư mục oracle. Trong trường hợp đó, chúng tôi không cần chỉ định 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. Bạn chỉ định sai tên thư mục oracle vào đó

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

Giải pháp

Chỉ định tên thư mục chính xác hoặc tạo tên thư mục mới

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.

Tôi hy vọng bạn thích lời giải thích chi tiết về lỗi ORA-29280. Vui lòng thích và cung cấp phản hồi

Các bài viết có liên quan

ORA-29283:thao tác tệp không hợp lệ:xem bài đăng này về cách giải quyết ORA-29283:thao tác tệp không hợp lệ. Quyền nào cần được kiểm tra
ORA-29285:lỗi ghi tệp:ORA-29285:lỗi ghi tệp là lỗi phổ biến khi thực hiện thao tác xử lý tệp. Hãy xem bài đăng này để biết lý do khác nhau và giải pháp về cách giải quyết nó
ORA-01652:không thể mở rộng phân đoạn tạm thời:Lỗi ORA-01652 thường do khi vùng bảng không có dung lượng trống trong vùng bảng Vĩnh viễn và Tạm thời trong cơ sở dữ liệu oracle
ORA-00936 thiếu biểu thức:Tìm hiểu cách khắc phục sự cố ORA-00936 thiếu biểu thức trong SQL oracle. giải pháp khác nhau là gì, làm thế nào chúng ta có thể tránh nó, lỗi Oracle cho lỗi này
ORA-00257:lỗi lưu trữ. Chỉ kết nối nội bộ, cho đến khi được giải phóng. :Tìm hiểu cách khắc phục sự cố cho lỗi trình lưu trữ ORA-00257. Chỉ kết nối lỗi nội bộ. Giải pháp và ví dụ khác nhau được cung cấp theo cách từng bước.
ORA-00904:Bài đăng này để mô tả và các giải pháp khả thi của ORA-00904:ID không hợp lệ. Mẹo khắc phục sự cố cũng được cung cấp
FND_FILE trong ứng dụng oracle
https://docs.oracle.com/database/121/ARPLS/u_file.htm


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm BITAND () trong Oracle

  2. OracleParameter và Mệnh đề IN

  3. kết nối bằng mệnh đề trong regex_substr

  4. CHỌN từ bảng với danh sách Thay đổi IN trong mệnh đề WHERE

  5. Cài đặt Oracle 9i Developer Suite 2.0 trên Windows