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 :

ORACLE11G PLSQL XML


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut ORACLE11G PLSQL XML
    Bonjour,

    Je viens d'installer une base Oracle 11G sur un serveur Windows.
    Je voudrai faire un test de lecture d'un fichier XML externe à la base
    Voila la procédure STockée :
    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
    CREATE OR REPLACE PROCEDURE pr_lire_xml( repertoire IN VARCHAR2,
    	fichier IN VARCHAR2, 
    	fichier_erreur IN VARCHAR2 )
    IS
    	p XMLPARSER.PARSER;
    	doc XMLDOM.DOMDOCUMENT;
    BEGIN
    	p := XMLPARSER.NEWPARSER;
    	XMLPARSER.SETVALIDATIONMODE(p, FALSE);
    	--XMLPARSER.SETERRORLOG(p, repertoire || '\' || fichier_erreur);
    	XMLPARSER.SETBASEDIR(p, repertoire);
    	-- Analyser le fichier XML
    	XMLPARSER.PARSE( p, repertoire || '\' || fichier );
    	doc := XMLPARSER.GETDOCUMENT( p );
    	-- Afficher les éléments 
    	DBMS_OUTPUT.PUT_LINE('LES ELEMENTS DU FICHIER ' || fichier || ' SONT:');
    	pr_afficher_elements( doc );
    END;
    /
    SHOW ERRORS
    Lorsque je lance un fichier SQL me permettant d'exécuter cette procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SET SERVEROUTPUT ON
    EXEC pr_lire_xml( 'C:\tmp', 'test.xml', 'err.log' );
    J'obtiens :
    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> @test_xml
    BEGIN pr_lire_xml( 'C:\tmp', 'test.xml', 'err.log' ); END;
     
    *
    ERREUR Ó la ligne 1 :
    ORA-31001: Descripteur de ressource ou nom de chemin non valide :
    C:\tmp\test.xml
    ORA-06512: Ó "SYS.XDBURITYPE", ligne 11
    ORA-06512: Ó "XDB.DBMS_XSLPROCESSOR", ligne 142
    ORA-29280: chemin de rÚpertoire non valide
    ORA-29280: chemin de rÚpertoire non valide
    ORA-29280: chemin de rÚpertoire non valide
    ORA-06512: Ó "XDB.DBMS_XMLPARSER", ligne 119
    ORA-06512: Ó "BDTEST.PR_LIRE_XML", ligne 13
    ORA-06512: Ó ligne 1
    Ai-je oublié quelquechose ?


    Merci

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Peut être creer et utiliser un Directory.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut
    Oui en effet je viens de trouver ça dans un autre message du forum.
    Où peut on trouver la documentation des procédures SQL ?

    Merci

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Dans Oracle Documentation ensuite la version, ensuite books, et ensuite PL/SQL Packages ... ou Supplied Packages ... (ça depande de la version d'Oracle)

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut
    J'ai un problème dans l'affichage des valeurs des noeuds :

    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
    CREATE OR REPLACE PROCEDURE pr_afficher_elements( doc xmlDom.DOMDocument ) 
    IS
    	lesNoeuds xmlDom.DOMNodeList;
    	longueur NUMBER;
    	noeud xmlDom.DOMNode;
    BEGIN
    	-- Récupérer tous les éléments du document XML
    	lesNoeuds := xmlDom.getElementsByTagName(doc, '*');
    	longueur := xmlDom.getLength(lesNoeuds);
    	-- Parcourir tous les éléments
    	FOR i IN 0 .. longueur-1 LOOP
    		noeud := xmlDom.item( lesNoeuds, i);
    		DBMS_OUTPUT.PUT(xmlDom.getNodeName(noeud) || '=');
    		DBMS_OUTPUT.PUT_LINE(xmlDom.getNodeValue(noeud));
    	END LOOP;
    	DBMS_OUTPUT.PUT_LINE(' ');
    END;
    /

    Le fichier XML contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <utilisateurs>
    	<user>
    		<nom>TTOTOO</nom>
    		<prenom>JR</prenom>
    		<alias>JR</alias>
    	</user>
    	<user>
    		<nom>TUTU</nom>
    		<prenom>Henri</prenom>
    		<alias>XX</alias>
    	</user>
    </utilisateurs>
    En résultat j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    LES ELEMENTS DU FICHIER test.xml SONT:
    utilisateurs=
    user=
    nom=
    prenom=
    alias=
    user=
    nom=
    prenom=
    alias=
    Je ne comprends pas pourquoi xmlDom.getNodeValue(noeud) me raméne rien


    Merci

Discussions similaires

  1. [PLSQL]Problème d'accent dans récupération XML
    Par henri93 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 29/04/2010, 13h08
  2. Réponses: 1
    Dernier message: 22/12/2005, 15h45
  3. delphi XML / HTML caractéres speciaux !
    Par adem dans le forum EDI
    Réponses: 2
    Dernier message: 29/08/2002, 17h48
  4. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07
  5. Pas de casse dans les XML
    Par :GREG: dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 13h51

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