Oracle
 sql >> база данни >  >> RDS >> Oracle

Използвайте dbms_xmldom.writetofile без именувана директория

Първият проблем е, че вероятно пътят не съществува или нямате привилегии за писане в директорията.

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

Ако нямате редове, трябва да адресирате това с вашия DBA, тъй като или директорията не съществува, или нямате привилегии над нея. Директория на база данни е комбинация от два елемента:

  • Директорията на базата данни е указател или препратка към местоположение в операционната система.
  • Пътят на тази директория трябва да съществува и потребителят, който изпълнява процеса, трябва да притежава привилегии за четене и запис в нея.

За втория проблем проблемът е, че потребителят, който притежава процедурата, не е получил системната привилегия CREATE ANY DIRECTORY. Вашият DBA трябва да предостави привилегията CREATE ANY DIRECTORY над вашия потребител, въпреки че не го препоръчвам. Даването на ВСЯКАКВИ привилегии е лоша практика за сигурност.

Създаването на директории обикновено е задача за вашия DBA. Не предвиждам сценарий, когато трябва да ги създадете динамично, стига да трябва да създадете и основната директория във файловата система (Linux) или Windows устройство, в зависимост от вашата операционна система.

Предвид вашите специални обстоятелства, нямате избор с това. Трябва да преоцените решението. Може би бихте могли да използвате WRITETOCLOB вместо WRITETOFILE, след това да спулирате резултата от страната на вашия клиент от sqlplus вместо това




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да покажа изхода на sys_refcursor pl sql с инструмента Toad

  2. Как мога да предпазя моята DB връзка от неуспех, когато мрежата е нестабилна?

  3. таблицата ora-04091 се променя-

  4. Как да се справя с изключение на курсора, когато заявката за избор върне нула записи

  5. Как да конвертирате дата в времеви печат (DD-MON-YYYY HH24:MI:SS.FF формат) в oracle?