ORA-29283:hoạt động tệp không hợp lệ là một lỗi khá phổ biến.
Nó xảy ra chủ yếu vì hai lý do
(1) Thư mục và tệp phải có quyền thích hợp ở cấp hệ điều hành cho cùng một người dùng đã khởi động cơ sở dữ liệu Oracle
Ví dụ
Thư mục không tồn tại trên OSls / u555 / app / oracleKhông có tệp hoặc thư mục như vậySQL> statementF_LOG utl_file.file_type; beginF_LOG:=utl_file.fopen ('/ u555 / app / oracle', 'k', 'w'); end; / 2 3 4 5 6declare * ERROR tại dòng 1:ORA-29283:hoạt động tệp không hợp lệORA-06512:tại "SYS.UTL_FILE", dòng 536ORA-29283:hoạt động tệp không hợp lệORA-06512:tại dòng 4
Điều này cũng xảy ra nếu thư mục không có quyền thích hợp cho người dùng Oracle mà từ đó cơ sở dữ liệu được khởi động.
Nếu bạn đang thực hiện bất kỳ thay đổi cấp độ nhóm nào trên Unix và người dùng oracle có liên quan, bạn nên trả lại cả cơ sở dữ liệu và trình nghe
Điều này cũng có thể xảy ra nếu bạn đã tạo một thư mục oracle như thế này
SQL> tạo thư mục TESTDIR dưới dạng '/ u555 / oracle / tmp'; SQL> cấp quyền đọc, ghi trên thư mục TESTDIR thành công khai;
Nhưng nó không tồn tại trong OS
SQL> statementF_LOG utl_file.file_type; beginF_LOG:=utl_file.fopen ('TESTDIR', 'k', 'w'); end; / 2 3 4 5 6declare * LỖI ở dòng 1:ORA-29283:tệp không hợp lệ operationORA-06512:tại "SYS.UTL_FILE", dòng 536ORA-29283:hoạt động tệp không hợp lệORA-06512:tại dòng 4
Điều này cũng có thể xảy ra khi bạn đang đọc tệp và người dùng tiên phong hệ điều hành không có quyền làm điều đó
SQL> statementF_LOG utl_file.file_type; beginF_LOG:=utl_file.fopen ('/ u555 / app / oracle', 'k', 'r'); end; / 2 3 4 5 6declare * LỖI ở dòng 1:ORA -29283:thao tác tệp không hợp lệORA-06512:tại "SYS.UTL_FILE", dòng 536ORA-29283:thao tác tệp không hợp lệORA-06512:tại dòng 4
(2) Lý do thứ hai cho lỗi này là cài đặt ORA_NLS10 trong cơ sở dữ liệu Oracle và môi trường trình nghe.
Nếu bạn bật truss trong quá trình này, tệp Truss hiển thị một khối của tệp được đọc và các khối tiếp theo không thể đọc hoặc bị hỏng do cài đặt NLS (ORA_NLS10).
Lỗi sau có thể được hiển thị trong giàn
lỗi đọc tệp
lỗi ghi tệp
lỗi nội bộ
kích thước dòng tối đa không hợp lệ
tên tệp không hợp lệ
quyền truy cập thư mục bị từ chối
bù đắp không hợp lệ được chỉ định cho tìm kiếm Thao tác xóa tệp
không thành công
thao tác đổi tên tệp không thành công
Đã xảy ra lỗi luồng trong khi nén hoặc giải nén.
Đã xảy ra lỗi dữ liệu trong quá trình nén hoặc giải nén.
thẻ tiêu đề mime không hợp lệ
chuỗi được mã hóa không hợp lệ
Biểu diễn nén quá lớn
Bạn nên có cài đặt nhất quán trên cơ sở dữ liệu và trình nghe.
Cả cơ sở dữ liệu và Trình xử lý đều có cùng một bộ ORA_NLS10 hoặc cả hai đều chưa đặt giá trị.
Đặt ORA_NLS10
ORACLE_SID =TESTORA_NLS10 =<> sqlplus / as sysdbashutdown ngay lập tức dừng TESTlsnrctl bắt đầu KIỂM TRA
Đang hủy đặt ORA_NLS10
ORACLE_SID =TEST bỏ đặt ORA_NLS10 sqlplus / as sysdbashutdown ngay lập tứcNếu cơ sở dữ liệu và bộ nghe đang được khởi động bằng Oracle cluster, chúng ta có thể thực hiện cài đặt này trong srvctl.
Chúng tôi có thể kiểm tra cài đặt của ORA_NLS bằng lệnh dưới đây trong OS
Tìm quy trình PMON
ps -ef | grep pmon | grep TESTĐối với Linux:$ string / proc // environ | grep NLSĐối với Solaris:$ pargs -e | grep NLS Tìm quy trình lắng nghe
ps -ef | grep list | grep TESTĐối với Linux:$ string / proc // environ | grep NLSĐối với Solaris:$ pargs -e | grep NLS Ví dụ
Chúng tôi có thể thực hiện theo các bước sau để tái tạo vấn đềORA_NLS10 =<> sqlplus / as sysdbashutdown ngay lập tức khởi độnglsnrctl dừng TESTlsnrctl start TESTBây giờ chưa đặt ORA_NLS10Bây giờ thiết lập Bequeath các kết nốiqlplus / as sysdbaSQL> statementF_LOG utl_file.file_type; beginF_LOG.fopen ',' tệp_type; startF_LOG:', ut' end; / 2 3 4 5 6declare * ERROR tại dòng 1:ORA-29283:hoạt động tệp không hợp lệORA-06512:tại "SYS.UTL_FILE", dòng 536ORA-29283:hoạt động tệp không hợp lệORA-06512:tại dòng 4Tôi hy vọng bạn thích bài đăng này về Cách giải quyết ORA-29283:hoạt động tệp không hợp lệ và điều này giúp khắc phục sự cố của bạn
Ngoài ra, hãy đọc
Cách thay đổi mật khẩu ứng dụng trong R12.2
Lệnh FNDLOAD:Lệnh / trình tải FNDLOAD là một tiện ích có mục đích chung di chuyển dữ liệu có cấu trúc giữa tệp văn bản và cơ sở dữ liệu trong môi trường EBS.
ORA-29280:đường dẫn thư mục không hợp lệ
ORA-29285:lỗi ghi tệp