DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Database Zone»Génération et exportation de fichier XML dans Oracle
    Database Zone

    Génération et exportation de fichier XML dans Oracle

    novembre 17, 2021
    Génération et exportation de fichier XML dans Oracle
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Dans certains cas, il peut être nécessaire d’écrire les données stockées dans les bases de données traditionnelles dans des fichiers XML. Dans Oracale, il existe quelques fonctions XML pour ce sujet, cependant, dans cet article, nous discuterons de la méthode alternative pour convertir une table stockée dans une base de données Oracle au format XML dans une base de données Oracle et l’exporter sous forme de fichier XML, sans utiliser les fonctions XML d’Oracle.

    Vous pouvez utiliser cette méthode dans les procédures stockées dans Oracle. Supposons que nous ayons une table appelée Customer, qui comporte les colonnes suivantes :

    CREATE TABLE customer
    (
      id         NUMBER,
      first_name VARCHAR2(100),
      last_name  VARCHAR2(100),
      birth_date DATE,
      gender     VARCHAR2(1)
    )

    Tableau des clients

    Tout d’abord, nous devons convertir les données du tableau au format XML. Nous devons créer une chaîne en concaténant les colonnes du tableau entre les balises au format XML dans la requête SQL. Nous pouvons écrire ces données formatées dans une autre table pour le stockage et l’exportation.

    Voici un exemple:

    CREATE TABLE customer_xml
    (
      created_date DATE,
      row_num      NUMBER,
      xml_data     VARCHAR2(4000)
    );
    
        INSERT INTO customer_xml
        (created_date,
         row_num,
         xml_data)
        SELECT c.created_date,
               c.row_num,
               CASE
                 WHEN c.row_num = 1 THEN
                  '<?xml version="1.0" encoding="UTF-8"?><root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
                 ELSE
                  ''
               END ||
               '<id>' || TO_CHAR(id) || '</id>' ||
               '<first_name>' || first_name || '</first_name>' ||
               '<last_name>' || last_name || '</last_name>' ||
               '<birth_date>' || TO_CHAR(birth_date, 'YYYY-MM-DD') || '</birth_date>' ||
               '<gender>' || gender || '</gender>' ||
               CASE
                 WHEN c.row_num = rc.row_count THEN
                  '</root>'
                 ELSE
                  ''
               END AS xml_data
          FROM (SELECT TRUNC(SYSDATE) AS created_date,
                       c.*,
                       ROW_NUMBER() OVER(ORDER BY c.id) AS row_num
                  FROM customer c) c
     LEFT JOIN (SELECT TRUNC(SYSDATE) AS created_date,
                       COUNT(*) AS row_count
                  FROM customer c) rc
            ON c.created_date = rc.created_date;
    
    COMMIT;


    Une fois les données au format XML insérées dans le tableau, nous pouvons exporter le fichier avec l’extension XML. Pour ce faire, nous pouvons utiliser le package UTL_FILE dans Oracle. Pour exporter les données de la table customer_xml, nous pouvons utiliser la fonction UTF_FILE.fopen_nchar. Pour créer un fichier XML, il suffit d’ajouter l’extension « .xml » à la fin du paramètre de nom de fichier.

    Après cela, le fichier XML sera créé à l’emplacement spécifié dans la fonction UTL_FILE :

    BEGIN
        fo := UTL_FILE.fopen_nchar (location, filename || '.xml', 'w', 32767);
    
        FOR c1 IN (SELECT xml_data
                     FROM customer_xml
                 ORDER BY row_num)
        LOOP
            UTL_FILE.put_line_nchar (fo, C1.xml_data);
        END LOOP;
    
        UTL_FILE.fclose (fo);
    END;

    Ça y est …! Qu’est-ce que tu penses? S’il vous plaît partager dans les commentaires ci-dessous.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.