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

Sử dụng dbms_xmldom.writetofile mà không có Thư mục được đặt tên

Vấn đề đầu tiên là có thể đường dẫn không tồn tại hoặc bạn không có quyền ghi trên thư mục.

SQL> select directory_path from all_directories where directory_name = 'YOUR DIRECTORY' ;

Nếu bạn không có hàng, bạn cần giải quyết vấn đề này bằng DBA của mình, vì thư mục không tồn tại hoặc bạn không có đặc quyền đối với nó. Thư mục cơ sở dữ liệu là sự kết hợp của hai yếu tố:

  • Thư mục cơ sở dữ liệu là một con trỏ hoặc tham chiếu đến một vị trí trong hệ điều hành.
  • Đường dẫn của thư mục đó phải tồn tại và người dùng chạy quy trình phải có đặc quyền đọc và ghi trên đó.

Đối với vấn đề thứ hai, vấn đề là người dùng sở hữu quy trình đã không được cấp đặc quyền hệ thống TẠO BẤT KỲ CHỈNH NÀO. DBA của bạn phải cấp đặc quyền TẠO BẤT KỲ TRỰC TIẾP cho người dùng của bạn, mặc dù tôi không khuyên bạn nên làm như vậy. Cấp BẤT KỲ đặc quyền nào là một phương pháp bảo mật không tốt.

Tạo thư mục thường là một nhiệm vụ đối với DBA của bạn. Tôi không lường trước được trường hợp khi bạn cần tạo chúng động, miễn là bạn cũng phải tạo thư mục cơ bản trong ổ đĩa Hệ thống tệp (Linux) hoặc Windows, tùy thuộc vào hệ điều hành của bạn.

Với hoàn cảnh đặc biệt của bạn, bạn không có lựa chọn nào khác với điều này. Bạn cần đánh giá lại giải pháp. Có lẽ bạn có thể sử dụng WRITETOCLOB thay vì WRITETOFILE, sau đó cuộn kết quả ở phía máy khách của bạn bằng sqlplus thay thế




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy xuất thông tin kiểu dữ liệu cho các cột trong Oracle OCCI ResultSet

  2. Làm cách nào để sử dụng SQL * Plus để tạo các dạng xem / bảng với một dòng trống ở giữa câu lệnh tạo?

  3. Cách kết nối từ xa với cơ sở dữ liệu Oracle 11g

  4. Ghép hai bảng như thế nào để có kết quả sau?

  5. 5 cách cập nhật dữ liệu bằng truy vấn con trong Oracle SQL