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

Oracle Discussion :

Liste des colonnes d'un curseur


Sujet :

Oracle

  1. #1
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 178
    Points : 133
    Points
    133
    Par défaut Liste des colonnes d'un curseur
    Bonjour,

    Dans une procedure pl/sql, j'ai un curseur avec de nombreux champs.
    Je voudrais, avec utl_file, ecrire pour chaque enregistrement les différents champs séparés par un point-virgule par exemple, dans un fichier.

    Est-il possible avec un for de parcourir les champs du curseur? Quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    for x in moncursuer.colcount loop
      str=str||';'||moncurseur.col(x);
    end loop;
     
    utl_file.put_line(v_file,str);
    ...

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    C'est possible mais compliqué en utilisant du SQL dynamique avec le package DBMS_SQL. Dans ce cas, la procédure DESCRIBE_COLUMNS permet de parcourir les colonnes d'un curseur (mais il faut que le curseur soit défini avec PARSE, EXECUTE, COLUMN_VALUE ...).

    Peut-être qu'il est beaucoup plus simple que DBMS_SQL et même que PL_SQL + UTL_FILE d'utiliser SQLPLUS avec les bons paramètres de formatage ?

    Exemple:

    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
    SQL> set colsep ';'
    SQL> set heading off;
    SQL> select object_name, object_type, created from all_objects where rownum <= 10;
     
    ICOL$                         ;TABLE              ;30-AUG-05
    I_USER1                       ;INDEX              ;30-AUG-05
    CON$                          ;TABLE              ;30-AUG-05
    UNDO$                         ;TABLE              ;30-AUG-05
    C_COBJ#                       ;CLUSTER            ;30-AUG-05
    I_OBJ#                        ;INDEX              ;30-AUG-05
    PROXY_ROLE_DATA$              ;TABLE              ;30-AUG-05
    I_IND1                        ;INDEX              ;30-AUG-05
    I_CDEF2                       ;INDEX              ;30-AUG-05
    I_PROXY_ROLE_DATA$_1          ;INDEX              ;30-AUG-05
     
    10 rows selected.

  3. #3
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 178
    Points : 133
    Points
    133
    Par défaut
    J'ai justement commencé avec la solution SQLPLUS.

    Seulement, j'ai une requête relativement longue à évaluer.
    En fait, je fait d'abord un select que je spool.
    Ensuite, je réévalue la requête à travers un curseur pour faire de la suppression car c'est de la suppression en cascade et je ne peux pas le faire avec un requête simple (la structure de la base est ... disons surprennante).

    L'idée était donc de faire l'ensemble en une seule passe. D'où ma question.

Discussions similaires

  1. Liste des colonnes d'une requête
    Par romuald07 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 05/08/2008, 17h24
  2. Liste des colonnes d'une vue
    Par chaouki_2000 dans le forum SQL
    Réponses: 5
    Dernier message: 28/02/2008, 15h28
  3. Recuperer la liste des colonnes d'une table
    Par miai85 dans le forum Oracle
    Réponses: 1
    Dernier message: 12/07/2007, 11h44
  4. Réponses: 7
    Dernier message: 12/04/2007, 14h04
  5. Liste des colonnes "updatées" dans un Trigger
    Par rapha51 dans le forum Oracle
    Réponses: 3
    Dernier message: 09/03/2007, 17h47

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