IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

ORA-29532 et lecture catalogue via procédure java


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    A mon avis les chemins UNC ne sont pas supportés (comme avec le cmd.exe).
    Faites un lecteur réseau sur votre répertoire distant avec net use.
    C:\>net use /?
    La syntaxe de cette commande est*:


    NET USE
    [nom de périph.|*] [\\Ordinateur\Partage[volume] [mot de passe | *]]
    [/USER:[nom de domaine\]nom d'utilisateur]
    [/USER:[nom de domaine avec points\]nom d'utilisateur]
    [/USER:[nom d'utilisateur@nom de domaine avec points]
    [/SMARTCARD]
    [/SAVECRED]
    [[/DELETE] | [/PERSISTENT:{YES | NO}]]

    NET USE [nom de périphérique | *] [mot de passe | *] [/HOME]

    NET USE [/PERSISTENT:{YES | NO}]

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Par défaut
    merci de ta reponse waldar
    Mais il est certain que cela fonctionne avec le chemin reseau
    Je l'ai testé a destination d'un OS moins embetant que 2003 sur la securite et je l'ai vu sur le net sous linux
    Je pense que c'est un probleme de securite 2003 , mais je seche la dessus

    C'est de plus la methode conseillé par Oracle car les lecteur reseau ne sont accessible que lorsque le user qui les a créer est logué.
    Or sur le serveur on est pratiquement toujours a l'invite du login

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/05/2011, 17h56
  2. Connexion via Socket JAVA
    Par jihene dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 08/06/2006, 18h50
  3. [XML]execution d'applet via Spring java 1.4
    Par Arnard dans le forum Spring
    Réponses: 7
    Dernier message: 23/05/2006, 16h14
  4. Réponses: 1
    Dernier message: 27/04/2006, 18h22
  5. [Procédure][java] A n'y rien comprendre
    Par Stessy dans le forum SQL
    Réponses: 2
    Dernier message: 18/03/2004, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo