Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 10h08   #1
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
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.
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 11h10   #2
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
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 :
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 :
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"
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/05/2011, 09h13   #3
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
La version est Oracle 10 et mon schéma correspond à une seul table, seulement je veux éxecuter ma requète sur plusieurs tables.
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 09h31   #4
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
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
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 10h22   #5
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
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.
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 17h13   #6
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 438
Points : 10 438
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
C'est exactement ce que vous a proposé Pomalaix, qu'est-ce que vous n'arrivez pas à mettre en place à partir de son message ?
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 09h47   #7
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
Je ne comprends pas où il faut que j'éxecute ce code? Il faut que je crée une autre requête?
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 11h31   #8
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 438
Points : 10 438
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 09h36   #9
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
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.
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h06   #10
Membre expérimenté
 
Avatar de NicoL__
 
Homme Nicolas
Inscription : janvier 2011
Messages : 378
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations forums :
Inscription : janvier 2011
Messages : 378
Points : 528
Points : 528
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.
NicoL__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h56   #11
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 438
Points : 10 438
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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 ?
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 18h19   #12
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
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...
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 09h26   #13
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
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.
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 10h49   #14
Membre expérimenté
 
Avatar de NicoL__
 
Homme Nicolas
Inscription : janvier 2011
Messages : 378
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations forums :
Inscription : janvier 2011
Messages : 378
Points : 528
Points : 528
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".
NicoL__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 13h31   #15
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
d'accord et je te remercie. Je vais essayer de mettre toutes les tables dans le Job et ça devait marcher
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 14h04   #16
Membre expérimenté
 
Avatar de NicoL__
 
Homme Nicolas
Inscription : janvier 2011
Messages : 378
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations forums :
Inscription : janvier 2011
Messages : 378
Points : 528
Points : 528
C'est quoi le but de ton job talend ?
NicoL__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 15h24   #17
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
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
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 16h13   #18
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
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 ?
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 09h09   #19
Invité régulier
 
Femme Sophie Chalet
Étudiant
Inscription : avril 2011
Messages : 67
Détails du profil
Informations personnelles :
Nom : Femme Sophie Chalet
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 67
Points : 9
Points : 9
Bonjour,

Je suis en stage pour valider mon DUT informatique et je dois travailler sur Talend.
soso26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 12h16   #20
Membre expérimenté
 
Avatar de NicoL__
 
Homme Nicolas
Inscription : janvier 2011
Messages : 378
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations forums :
Inscription : janvier 2011
Messages : 378
Points : 528
Points : 528
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.
NicoL__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h08.


 
 
 
 
Partenaires

Hébergement Web