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

Administration Oracle Discussion :

selection de colonne dans une base 9i


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 43
    Points
    43
    Par défaut selection de colonne dans une base 9i
    je travaille sur une base 9i
    j'ai une table T1 contenant des colonnes avec des numéros(col1,col2,....coln)
    je veux à partir d'une procédure prendre les valeurs chaque colonne de chaque ligne de la table T1 pour creer une ligne dans la table T2
    par exemple dans ligne 1 table T2, inserer la valeur de col1 table T1,
    ligne 2 table T2, inserer la valeur de col2 table T1

    comment pourrais-je faire?

  2. #2
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Citation Envoyé par ktano
    je travaille sur une base 9i
    j'ai une table T1 contenant des colonnes avec des numéros(col1,col2,....coln)
    je veux à partir d'une procédure prendre les valeurs chaque colonne de chaque ligne de la table T1 pour creer une ligne dans la table T2
    par exemple dans ligne 1 table T2, inserer la valeur de col1 table T1,
    ligne 2 table T2, inserer la valeur de col2 table T1

    comment pourrais-je faire?
    Bonjour,

    On insère par tupple, j'ai bien compris ce que tu veux faire mais personnellement je ne trouve pas de solution.

    1. Si tu mets toutes les valeurs des colonnes de la tables 1 dans une ligne de la table 2 comment gérer les doublons et l'unicité.

    2. A moins que je me trompe j'ai toujours fonctionné en tupples donc enregistrements composés de divers types de données dans le pire des cas ( et donc en colonne). Si ton type de col1 et col 2 que tu veux mettre en ligne dans ta table 2 est différent...problème.
    Personnellement je ne vois pas.

    Tu as les données voulues et manipulables dans ta table 1, pourquoi ne pas les utiliser telles quelles

    @+

  3. #3
    Membre expert

    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    1 737
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 737
    Points : 3 137
    Points
    3 137
    Par défaut
    alors plusieurs remarques :

    1. J'en vois pas l'intéret
    2. J'en vois pas l'intérêt
    3. Si tu as des millions d'enregistrement, tu veux des millions de colonne
    4. Faut que tes colonnes aient toutes le meme type dans la table 1 sinon tu vas devoir mettre un type "générique" genre texte pour pouvoir etre sur de stocker et encore


    tu peux expliquer pourquoi tu veux faire ca si c'est pas indiscret ?

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 43
    Points
    43
    Par défaut
    le problème est que la table T1 est issue d'un fichier excel qui a été chargé.
    Donc je dois transformer les valeurs en colonne de la table T1 en valeur en ligne dans la table T2. bien sur il y'a une sequence qui permet d'éviter les doublons.

  5. #5
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Tu veux bien donner un exemple de ton fichier excel, et ce que tu voudrais ca aiderait pas mal pour tout le monde stp

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 43
    Points
    43
    Par défaut
    le problème n'est pas le fichier excel car je l'ai importée déja dans la table T1.
    il reste à charger les colonnes de T1 en ligne dans T2.

    voici comment se présentent les tables
    create table T1
    (
    COL1 number,
    COL2 number,
    COL3 number,
    COL4 number,
    COL5 number,
    COL6 number,
    COL7 number,
    COL8 number,
    COL9 number,
    COL10 number,
    COL11 number,
    COL12 number,
    COL13 number,
    COL14 number,
    COL15 number,
    COL16 number,
    COL17 number,
    COL18 number,
    COL19 number,
    COL20 number,
    COL21 number,
    COL22 number,
    COL23 number,
    COL24 number,
    COL25 number,
    num number
    );

    create table T2
    (num number,
    datec date,
    mont number
    );

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 37
    Points : 37
    Points
    37
    Par défaut selection de colonne dans une base 9i
    Bonjour,

    Si j'ai bien compris, si comme si tu veux transformer les lignes de T1 en colonnes dans T2. Si c'est le cas je pense que j'ai la solution :

    1/ exportation de T1 en fichier texte (csv,txt,..) par un spooling.
    2/par UTL_FILE tu peux créer un nouveau fichier texte qui contiendra les mêmes données en colonne, si tu veux je t'envois une procèdure que tu pourra adapter à ton besoin.
    3/ Un import du dernier fichier vers ta table T2.

    Peut être, il existe une autre solution moins longue!

  8. #8
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Un produit cartésien me semble la solution la plus efficace car ça évitera de parcourir 25 fois la table T1. Par contre est-ce normal que tu perdes l'information dans ta table T2 du type de colonne à l'origine du montant ? dans mon exemple, j'ai rajouté cette info dans une colonne, mais enlève la si ce n'est pas nécéssaire.

    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
    insert into T2 (typ_montant, num, montant)
     select 
       'COL'||V.NUMCOL,
       T1.NUM
         decode (V.NUMCOL,
          1,T1.COL1,
          2,T1.COL2,
          3,T1.COL3,
          .....
          25,T1.COL25)
    from T1,
        (  
           select 1 NUMCOL from dual
              union all
           select 2 from dual
               union all
           select 3 from dual
               .....
            select 25 from dual
        )  V

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 43
    Points
    43
    Par défaut
    Que represente V à la fin

  10. #10
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Citation Envoyé par ktano
    Que represente V à la fin
    C'est l'alias de la vue dynamique.

Discussions similaires

  1. recherche colonne dans une base
    Par stephyugh dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 29/08/2014, 09h59
  2. Recherche d'une colonne dans une base
    Par seba84 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/08/2009, 11h33
  3. Selections de colonnes dans une feuille excel
    Par hubeuh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/12/2007, 12h28
  4. Récupération du type d'une colonne dans une base de données
    Par Astartee dans le forum Accès aux données
    Réponses: 2
    Dernier message: 07/05/2007, 13h03
  5. insérer une colonne dans une base
    Par ludolan dans le forum Access
    Réponses: 2
    Dernier message: 21/10/2005, 11h29

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