Bonjour,

J'écris un petit bout de pl/sql sur une base 8.1.7 qui permet d'extraire le contenu d'une table dans un fichier XML.

le code est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
 
 declare
  queryCtx DBMS_XMLquery.ctxType;
  result CLOB;
 
  p xmlparser.parser;
  doc xmldom.DOMDocument;
 
begin
  queryCtx := DBMS_XMLQuery.newContext('select * from maTable');
 
  result := DBMS_XMLQuery.getXML(queryCtx);
 
  p := xmlParser.newParser;
  xmlParser.parseClob(p, result);
  doc := xmlparser.getDocument(p);
 
  xmldom.writeToFile(doc, 'E:\ora-results\result.xml');
 
  DBMS_XMLQuery.closeContext(queryCtx);  
end;
/
mon probleme est que lorsque j'exécute ce code avec mon user system, j'ai l'erreur suivante:

ORA-29532: Java call terminated by uncaught Java exception:
java.security.AccessControlException: the Permission (java.io.FilePermission
e:\ora-results\result.xml write) has not been granted by
dbms_java.grant_permission to
SchemaProtectionDomain(SYSTEM|PolicyTableProxy(SYSTEM))
ORA-06512: at "SYSTEM.XMLDOCUMENTCOVER", line 0
ORA-06512: at "SYSTEM.XMLDOM", line 1782
ORA-06512: at line 28

Par contre, quand j'utilise le user sys, ca marche niquel chrome. Je me dis que mon utilisateur system n'a pas les permission nécessaire... apres quelques recherches, j'ai effectué les commandes suivantes, en me connectant en sys:

EXEC DBMS_JAVA.GRANT_PERMISSION('SYSTEM', 'SYS:java.io.FilePermission', 'E:\ora-results\result.xml', 'read, write, execute, delete');
GRANT JAVAUSERPRIV TO SYSTEM;
COMMIT;

Mais j'ai toujours la meme erreur quand j'exécute mon bloc PL/SQL avec le user system...

Merci pour vos indications!