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

SQL Oracle Discussion :

Appliquer une requête merge sur un fichier xml


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 42
    Par défaut Appliquer une requête merge sur un fichier xml
    Bonjour,

    Je souhaite intégrer un fichier XML grâce à une requête merge

    Voici le code :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
     
    DECLARE
     
     v_xml XMLTYPE;
     
     BEGIN
     
     
     --events
    v_XML := XMLTYPE(bfilename('FICHIER_IN_FB', 'events.xml'), nls_charset_id('AL32UTF8'));
     
    MERGE INTO EVT_EVENTS t
    USING 
    (
      SELECT x.*
      FROM XMLTABLE
      ( 
       'events'
       passing v_xml
       columns EV_ID VARCHAR2(32) PATH '@id',       
               EV_TITLE VARCHAR(30) PATH 'title',
               EV_SUBTITLE VARCHAR2(30) PATH 'subTitle',
               EV_SHORT_DESCRIPTION VARCHAR2(1000) PATH 'shortDescription',
               EV_IS_WITHOUT_SESSION varchar2(30) PATH 'isWithoutSession',
               EV_IS_TICKET_MANDATORY varchar2(50) PATH 'isTicketHolderMandatory',
               EV_IS_CLIENT_INFORMATION varchar2(50) PATH 'isClientInformationMandatory',
               EV_STATUS varchar2(5) PATH 'status',
               EV_CREATION_DATE varchar2(30) PATH 'creationDate',
               EV_MODIFICATION_DATE varchar2(30) PATH 'modificationDate',
               EV_ORGANIZATION varchar2(30) PATH 'organization',
               EV_MIN_PRICE varchar2(30) PATH 'minPrice',
               EV_MAX_PRIZE varchar2(30) PATH 'maxPrice',
               EV_PLACE_ID varchar2(30) PATH 'place/@id'
      )x
    ) src
    ON (t.EV_ID = src.EV_ID)
     
    WHEN MATCHED THEN
      UPDATE SET 
               t.EV_TITLE = src.EV_TITLE,
               t.EV_SUBTITLE = src.EV_SUBTITLE ,
               t.EV_SHORT_DESCRIPTION = src.EV_SHORT_DESCRIPTION,
               t.EV_IS_WITHOUT_SESSION = src.EV_IS_WITHOUT_SESSION,
               t.EV_IS_TICKET_MANDATORY = src.EV_IS_TICKET_MANDATORY,
               t.EV_IS_CLIENT_INFORMATION = src.EV_IS_CLIENT_INFORMATION,
               t.EV_STATUS = src.EV_STATUS,
               t.EV_CREATION_DATE = src.EV_CREATION_DATE,
               t.EV_MODIFICATION_DATE = src.EV_MODIFICATION_DATE,
               t.EV_ORGANIZATION = src.EV_ORGANIZATION,
               t.EV_MIN_PRICE = src.EV_MIN_PRICE ,
               t.EV_MAX_PRIZE = src.EV_MAX_PRIZE,
               t.EV_PLACE_ID = src.EV_PLACE_ID,
               t.ev_current_date = sysdate
     
    WHEN NOT MATCHED THEN
      INSERT (t.EV_TITLE,
              t.EV_SUBTITLE,
              t.EV_SHORT_DESCRIPTION,
               t.EV_IS_WITHOUT_SESSION,
               t.EV_IS_TICKET_MANDATORY,
               t.EV_IS_CLIENT_INFORMATION,
               t.EV_STATUS,
               t.EV_CREATION_DATE,
               t.EV_MODIFICATION_DATE,
               t.EV_ORGANIZATION,
               t.EV_MIN_PRICE,
               t.EV_MAX_PRIZE,
               t.EV_PLACE_ID,
               t.ev_current_date)
      VALUES (src.EV_TITLE,
              src.EV_SUBTITLE, 
              src.EV_SHORT_DESCRIPTION,
              src.EV_IS_WITHOUT_SESSION,
              src.EV_IS_TICKET_MANDATORY,
              src.EV_IS_CLIENT_INFORMATION,
              src.EV_STATUS,
              src.EV_CREATION_DATE,
              src.EV_MODIFICATION_DATE,
              src.EV_ORGANIZATION,
              src.EV_MIN_PRICE,
              src.EV_MAX_PRIZE,
              src.EV_PLACE_ID,
              sysdate
              );
     
    end;
    Mais ça ne marche pas. La table evt_events reste vide

    Avez-vous une idée ?

    Merci d'avance de votre aide

  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
    Pourriez-vous poster un petit jeu d'essai: sql pour la création de la table, insertion de deux/trois enregistrement et un exemple de fichier XML à traiter ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/10/2009, 09h35
  2. une liste ou requête basée sur deux fichiers
    Par chapeau_melon dans le forum WinDev
    Réponses: 8
    Dernier message: 12/11/2007, 20h00
  3. [SimpleXML] requête sur un fichier xml
    Par ANISSS dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 03/05/2007, 09h21
  4. [XSLT] une question sur mon fichier XML
    Par delma dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 20/10/2006, 17h08
  5. [XSLT] Appliquer un traitement xslt sur un fichier XML distant
    Par mabig dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/03/2006, 09h38

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