Bonjour,

J'ai créé un script en PL/SQL pour extraire d'une base les instructions nécessaires à la création des différentes tables d'un utilisateur à l'aide du package DBMS_METADATA. Jusque là pas de soucis.

Mais j'ai voulu également récupérer les commentaires des différentes colonnes, et je n'ai pas trouvé l'instruction nécessaire en utilisant le package DBMS_METADATA.

J'ai fais autrement, en parcourant la table USER_COL_COMMENTS ou tout simplement en utilisant les fonctionnalités d'export de TOAD, mais par curiosité j'aimerais bien savoir si l'un d'entre vous sait comment récupérer les commentaires de colonne à partir de ce package.

Je mets ci-dessous mon code simplifié pour vous aider à mieux visualiser ma demande. Comme précisé dans le titre, je travaille sous Oracle9i :

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
DECLARE
    L_HFIC  		UTL_FILE.FILE_TYPE;
    TEXTE			CLOB;
    TABLE_NAME		VARCHAR2(30);
    L_BUFFER        PLS_INTEGER := 32767;
 
    -- Curseur de parcours des tables du shéma
    CURSOR C_SOURCE IS
        SELECT  TABLE_NAME
        FROM    USER_TABLES
        ORDER BY TABLE_NAME;
BEGIN
 
    OPEN C_SOURCE;
    LOOP
        FETCH C_SOURCE INTO TABLE_NAME;
        IF C_SOURCE%NOTFOUND THEN
            UTL_FILE.FCLOSE_ALL;
            EXIT;
        END IF;
 
        -- Récupération de la description de la table
        SELECT  DBMS_METADATA.GET_DDL('TABLE', TABLE_NAME)
        INTO TEXTE FROM DUAL;
 
        L_HFIC := UTL_FILE.FOPEN('TABLES', TABLE_NAME || '.SQL', 'W', L_BUFFER);
        UTL_FILE.PUT_LINE(L_HFIC, TEXTE);
        UTL_FILE.FFLUSH(L_HFIC);
        UTL_FILE.FCLOSE(L_HFIC);
    END LOOP;
    CLOSE C_SOURCE;
END P_TABLES;
 
/
 
SHOW ERRORS;
 
/
Merci d'avance.