sql >> Database teknologi >  >> RDS >> Oracle

Brug dbms_xmldom.writetofile uden en navngivet mappe

Det første problem er, at stien sandsynligvis ikke eksisterer, eller du har ingen skriverettigheder over mappen.

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

Hvis du ikke har nogen rækker, skal du adressere dette med din DBA, da biblioteket enten ikke eksisterer, eller også har du ingen privilegier over det. En database mappe er en kombination af to elementer:

  • Databasemappen er en pegepind eller reference til en placering i operativsystemet.
  • Stien til denne mappe skal eksistere, og den bruger, der kører processen, skal have læse- og skriverettigheder på den.

For det andet problem er problemet, at brugeren, der ejer proceduren, ikke er blevet tildelt systemprivilegiet OPRET NOGEN DIRECTORY. Din DBA skal give CREATE ANY DIRECTORY-privilegiet over din bruger, selvom jeg ikke anbefaler det. At give ALLE privilegier er en dårlig sikkerhedspraksis.

Oprettelse af mapper er normalt en opgave for din DBA. Jeg forudser ikke et scenario, når du skal oprette dem dynamisk, så længe du også skal oprette den underliggende mappe i filsystemet (Linux) eller Windows-drevet, afhængigt af dit operativsystem.

I betragtning af dine særlige omstændigheder har du ingen mulighed med dette. Du skal revurdere løsningen. Måske kan du bruge WRITETOCLOB i stedet for WRITETOFILE , så spool resultatet på din klientside af sqlplus i stedet




  1. Sammenligning af Galera Cluster Cloud-tilbud:Tredje del Microsoft Azure

  2. tsql returnerer en tabel fra en funktion eller butiksprocedure

  3. gør øget kolonne b-træets indeks på kolonnen ubalanceret?

  4. Træk måneder fra nuværende dato sql