ORA-29532 et lecture catalogue via procédure java
Bonjour,
je suis en oracle 10g et windows 2003
POur mon applicatif j'ai besoin de lire et créer des fichier ascii avec utl_file
et de lire le catalogue d'un reprtoire pour recupérer certain fichier.
j'ai donc utiliser la procedure java que l'on trouve sur internet pour permettre
de recuperer le contenu d'un repertoire dans une table oracle.
En local sur le serveur aucun probleme.
Par contre j'ai eu besoin que mon repertoire soit sur un autre serveur 2003
et la plus rien ne marche
Apres diverse recherche j'ai trouvé qu'il fallait changer le user de chargement
des services oracle pour qu'ils puissent accéder au reseau.
Sa fonctionne maintenant avec utl_file
Par contre pour la proc java impossible , le même chemin en \\serveur\rep
, ça plante .
j'ai essayé avec
Code:
1 2 3 4 5 6 7 8 9
|
BEGIN
DBMS_JAVA.GRANT_PERMISSION('USER
,'SYS:java.io.FilePermission'
,'\\serveur\rep
,'read');
END;
/
commit; |
ça n'a rien donné
Quelqu'un a t'il deja utilisé cette methode pour lire un chemin reseau ?
Je vous mets les sources utilisés et le message d'erreur
Merci d'avance de vos reponses
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
CREATE GLOBAL TEMPORARY TABLE DIR_LIST
( FILENAME VARCHAR2(255) )
ON COMMIT PRESERVE ROWS
/
--Source java pour la lecture d'un repertoire
create or replace
and compile java source named "DirList"
as
import java.io.*;
import java.sql.*;
public class DirList
{
public static void getList(String directory)
throws SQLException
{
File path = new File( directory );
String[] list = path.list();
String element;
for(int i = 0; i < list.length; i++)
{
element = list[i];
#sql { INSERT INTO DIR_LIST (FILENAME)
VALUES (:element) };
}
}
}
/
--Procedure pour l'appel du programme java 'DirList'
create or replace
procedure get_dir_list( p_directory in varchar2 )
as language java
name 'DirList.getList( java.lang.String )';
/ |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
SQL> exec get_dir_list('c:\');
Procédure PL/SQL terminée avec succès.
SQL> exec get_dir_list('\\serveur\partage2');
BEGIN get_dir_list('\\serveur\partage2'); END;
*
ERREUR à la ligne 1 :
ORA-29532: appel Java arrêté par une exception Java non interceptée :
java.lang.NullPointerException
ORA-06512: à "ABLRC.GET_DIR_LIST", ligne 1
ORA-06512: à ligne 1 |