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 :

Recuperer le schema de plusieurs tables


Sujet :

Oracle

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut Recuperer le schema de plusieurs tables
    Bonjour tous le monde,

    Je suis actuellement en stage, et je travail sur le logiciel Talend Open Studio.
    J'aimerais savoir s'il est possible de récupérer le schéma non pas d'une seule table, mais de plusieurs tables à la fois, d'une base de données Oracle.
    Donc si quelqu'un pouvais m'aider, se serait sympathique.
    Merci.

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Bonjour

    Il faut toujours préciser votre version d'Oracle, bien souvent la réponse en dépend.

    A partir d'Oracle 9i, DBMS_METADATA est votre ami pour ce genre de besoin.
    Il suffira de modifier la liste des tables dans le IN.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set long 5000
     
    select dbms_metadata.get_ddl('TABLE', table_name)
    from user_tables
    where table_name in ('EMP', 'DEPT');
    Ce qui donne :
    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
    39
    DBMS_METADATA.GET_DDL('TABLE',TABLE_NAME)
    --------------------------------------------------------------------------------
     
      CREATE TABLE "SCOTT"."DEPT"
       (    "DEPTNO" NUMBER(2,0),
            "DNAME" VARCHAR2(14),
            "LOC" VARCHAR2(13),
             CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "USERS"  ENABLE
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "USERS"
     
     
     
      CREATE TABLE "SCOTT"."EMP"
       (    "EMPNO" NUMBER(4,0),
            "ENAME" VARCHAR2(10),
            "JOB" VARCHAR2(9),
            "MGR" NUMBER(4,0),
            "HIREDATE" DATE,
            "SAL" NUMBER(7,2),
            "COMM" NUMBER(7,2),
            "DEPTNO" NUMBER(2,0),
             CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "USERS"  ENABLE,
             CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
              REFERENCES "SCOTT"."DEPT" ("DEPTNO") ENABLE
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "USERS"

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    La version est Oracle 10 et mon schéma correspond à une seul table, seulement je veux éxecuter ma requète sur plusieurs tables.

  4. #4
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Quand on a une seule pomme on ne peut pas en manger plusieurs
    Quand on a une seule table on ne peut pas exécuter une requête sur plusieurs

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    Je travaille sur Talend Open Studio et j'ai dans ma base Oracle 10 une cinquantaine de table. Seulement quand je récupere le schéma, le schéma correspond à une seule table et je voudrais qu'il correspond à plusieurs tables.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    C'est exactement ce que vous a proposé Pomalaix, qu'est-ce que vous n'arrivez pas à mettre en place à partir de son message ?

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    Je ne comprends pas où il faut que j'éxecute ce code? Il faut que je crée une autre requête?

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il faut que vous exécutiez ce code avec SQL*Plus, SQL Developer, TOAD, peu importe.
    Il suffit d'adapter la liste des tables aux vôtres dans le IN de la requête.

  9. #9
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    Bonjour,
    Donc il faut que je definis toutes les tables avec leur champs, seulement j'ai des tables avec plus de 100 champs. En fait j'ai une requête qui marche : elle selectionne plusieurs champs dans plusieurs tables. Quand je l'executen elle marche mais les champs selectionner ne s'affiche pas dans mon tMap. C'est comme si elle servait à rien. Dans mon tMap, je ne vois que les champs de la table qui est le schéma. Comment faire pour que la requête s'execute?
    Merci pour votre aide.

  10. #10
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Salut,
    J'utilise Talend Open Studio, pour extraire le schéma de plusieurs table de ta base :
    Ta va dans métadonnées (arbre à gauche) -> connexions aux bases de données - > 'ma connexion que tu as créée'
    clique droit Récupérer le schéma suivant et normalement tu as la liste des tables du schéma et tu coche celle que tu veux... et suivant etc... et ça marche normalement.

  11. #11
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par soso26 Voir le message
    Donc il faut que je definis toutes les tables avec leur champs
    Mais où diable avez-vous vu ne serait-ce que le nom d'une colonne ?

    Pouvez-vous essayer ce qui vous est proposé au lieu de formuler des critiques ?

  12. #12
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Comme on est dans un forum Oracle, on a supposé que c'était une question Oracle, mais je gage que c'est Nicol qui a tapé dans le mille : la question porte sur Talend, et on perd tous notre temps...

  13. #13
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    Bonjour et je vous remercie de vos réponses.
    Nicol, je sais tout çà mais quand je le fais cela me récupere toute les tables, ensuite je defini mon schema en cliquant sur recuperer le schema... Seulement le schema correspond à une table et je dois recuperer des champs de plusieurs tables. Donc j'ai écrite une requete qui marche, seulement cette requete, je n'est pas l'impression quel s'execute car les champs quel doit selectionner ne s'affiche pas dans le tMap.

  14. #14
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Je pense que tu devrais faire un tour sur la doc et le forum de talend. Mais effectivement, le plus simple c'est de construire un job en prenant un table et en la liant aux autre par des tMap... si tu veux faire un requête plus complexe qui necessite beaucoup de tables une solution c'est de faire une vue dans oracle et son schéma sera récupérée.
    Si tu fait ta propre requête dans talend, il faut redéfinir tout le schéma à la main ou utiliser la fonction "Guess schema".

  15. #15
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    d'accord et je te remercie. Je vais essayer de mettre toutes les tables dans le Job et ça devait marcher

  16. #16
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    C'est quoi le but de ton job talend ?

  17. #17
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    Il faut que je mettes des champs de la base de donnée Oracle dans une feuille Excel tout simplement mais faudrait d'abord que j'accede à toutes les informations que je souhaite

  18. #18
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Bonjour,

    SQL*plus, SQL et PL/SQL sont tes amis pour créer un fichier excel (en CSV ou en XML) pourquoi passer par Talend ?

  19. #19
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    Bonjour,

    Je suis en stage pour valider mon DUT informatique et je dois travailler sur Talend.

  20. #20
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Je vais pas faire ton devoir mais bon l'idée est d'ajouter dans ton job toutes les tables dont tu as besoin d'utiliser un tMap pour réaliser les les relations entre ces dernières et déverser le flux dans un outputExcel.
    Si ton but est de sortir le schéma des tables dans un excel je pense que la requête précédente peut t'y aider.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] recuperer les valeurs de plusieurs tables
    Par IVIedia dans le forum PHP & Base de données
    Réponses: 27
    Dernier message: 18/03/2012, 12h41
  2. Réponses: 5
    Dernier message: 22/11/2010, 18h20
  3. Recuperer les valeurs d'un meme champ sur plusieurs tables
    Par ant0inep dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/05/2010, 20h18
  4. [MySQL] script de login recuperer des informations sur plusieurs tables
    Par hichoum dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/07/2009, 15h35
  5. Réponses: 6
    Dernier message: 05/02/2008, 15h46

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