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 :

[Sql] colonnes d'une table


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut [Sql] colonnes d'une table
    bonjour,
    j'aimerais avoir de l'aide sur l'affichage des noms de colonnes d'une table lors de l'utilisation de UTL_FILE.
    j'arrive à avoir le fichier mais elle est vide quand je l'ouvoir;
    voici comment g fais mon 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
     
    lf$fic UTL_FILE.file_type;
    LC$ligne VARchar(32767);
    curseur c_curs is
    select
    column_name,data_type
    from users_tab_columns where table_name=ma_table
    and data_type in ('NUMBER','VARCHAR');
    Begin
    fichier:=ouvrir_fichier(lf$fic,lc$ligne)--g prealablement declaré cette fonction--
    If pc$col:='O' then
    I:=1;
    For cols in c_curs loop
    If I:=1 then
    LC$ligne:= Lc$ligne ||Cols.column_name;
    else
    LC$ligne :=LC$ligne ||Cols.column_name;
    end if;
    I:=I+1;
    end loop;
    UTL_FILE.Put_LINE(LF$FIC,LC$ligne);
    Utl_file.Fclose(lf$fic)
    end;
    /

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    1) Evite le langage SMS.
    2) d'où vienent la variable fichier et la variable pc$col et comment est-elle initialisée ?
    3) quel est l'intérêt de construire une grosse varaible et d'écrire dans le fichier en dehors de la boucle ?
    4) A quoi sert le if I:=1, puisque tu fais la même chose dans les deux cas
    5) il manque un end if
    6) il manque des ;
    7) tu devrais indenter ton 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
     
    lf$fic UTL_FILE.file_type;
    LC$ligne VARchar(32767);
    curseur c_curs is
       select column_name,data_type
       from users_tab_columns 
       where table_name=ma_table
         and data_type in ('NUMBER','VARCHAR');
    Begin
      fichier := ouvrir_fichier(lf$fic,lc$ligne)--g prealablement declaré cette fonction--
      If pc$col:='O' then
          I:=1;
          For cols in c_curs loop
              If I:=1 then
                  LC$ligne:= Lc$ligne ||Cols.column_name;
              else
                  LC$ligne :=LC$ligne ||Cols.column_name;
              end if;
              I:=I+1;
          end loop;
          UTL_FILE.Put_LINE(LF$FIC,LC$ligne);
          Utl_file.Fclose(lf$fic)
    end;
    /

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    8) plus de rigueur avec majuscules / minuscules

  4. #4
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut
    merci,
    en fait g moi meme trouvé la reponse en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    li:=1;
    for i in 1...3
    loop
    if li=1 then
    lc$col:= tab(1);--tableau de type varray prealablement declaré
    elsif li=2 then
    lc$col:=tab(2);
    else
    lc$col:=tab(3);
    end if;
    end loop;
    et ca marche en perfection.merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/10/2007, 20h27
  2. [T-SQL] Colonnes d'une table appelées avec une variable
    Par Deedoo2000 dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 25/09/2006, 15h18
  3. [T-SQL] Colonnes d'une table appelées avec une variable
    Par Deedoo2000 dans le forum Sybase
    Réponses: 3
    Dernier message: 25/09/2006, 15h18
  4. Réponses: 4
    Dernier message: 19/05/2005, 14h18
  5. Instruction SQL qui supprime une colonne d'une table
    Par tseg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2003, 20h47

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