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