1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : avril 2014
    Messages : 18
    Points : 10
    Points
    10

    Par défaut Script migration plusieurs tables

    Bonjour à tout le monde
    j'aurai besoin de votre aide je m'explique
    je bosse sur un projet qui contient 400 tables oracle et plus , mon chef me demande de faire un script qui permet de prendre 60 tables
    et de le mettre dans une seule table oracle que j'ai déjà créer
    les premiers étapes se sont
    1) j'ai definé les tables concerner
    2) j'ai calculer le nombre de ligne de chaque table
    3) j'ai calculer la volumétrie de chaque table
    4) calculer le Nombre de doublons
    maintenant je cherche un script qui permet de jouer toute ces requêtes ( requet de count(*) de la table à migrer, la requete de migration, la requete de count(*) de nombre de donnée migrer dans la tables cible)avec un rapport indiquant le Nb de données à migrer,le statut de l'insertion (ok/ko), et le nombre de données à migrer

    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    7 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 7 199
    Points : 21 986
    Points
    21 986

    Par défaut

    Si je comprends bien, tu as déjà toutes tes requêtes et tu cherches le moyen de les enchainer ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : avril 2014
    Messages : 18
    Points : 10
    Points
    10

    Par défaut

    merci de votre réponse
    je cherche n’importe qu’il script qui permet de faire les lien entre tous les requete ex:
    et en même temps affiche le status de chaque table

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT COUNT(*) FROM Table1;
    insert into COMMUNE (champ1,
                                    champ2,
                                   champ3,
                                   champ4,
                                          etc
     
    	                        )
    		select *
    		  from table
    				UNION all select *from 	table1
                                    UNION all select *from 	table2
                                    UNION all select *from  table3
                                    UNION all select *from 	table4
                                    UNION all select *from  ltable5;

  4. #4
    Membre confirmé Avatar de Cincinnatus
    Homme Profil pro
    Développeur Java
    Inscrit en
    mars 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : mars 2007
    Messages : 186
    Points : 508
    Points
    508

    Par défaut

    Citation Envoyé par abdel111 Voir le message
    merci de votre réponse
    je cherche n’importe qu’il script qui permet de faire les lien entre tous les requete ex:
    et en même temps affiche le status de chaque table

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT COUNT(*) FROM Table1;
    insert into COMMUNE (champ1,
                                    champ2,
                                   champ3,
                                   champ4,
                                          etc
     
                                )
            select *
              from table
                    UNION all select *from     table1
                                    UNION all select *from     table2
                                    UNION all select *from  table3
                                    UNION all select *from     table4
                                    UNION all select *from  ltable5;
    Bonjour,

    Premier point : traiter toutes les tables d'un coup : ne pas faire.
    Si il y a le moindre problème de données dans l'une d'elles, le résultat ne sera pas beau à voir. Et bonjour pour trouver l'origine du bins.

    Deuxième point: pour connaître le statut de chaque table source, il faut vérifier chaque table source... indépendamment des autres, et avant de fusionner les données.

    Troisième point : je te conseille de faire des select plus détaillés : le select * pour la fusion, pas vraiment top. Il vaut mieux expliciter chaque champ, ça aide à vérifier la conformité de chaque table.

    En outre, si le volume de certaines (ou toutes) les tables est conséquent, il vaut mieux commiter en cours de traitement. A toi de voir en fonction des volumes réels.

    Plus globalement, je contrôlerais d'abord la qualité des données, j'utiliserais un MERGE pour fusionner ces données (ça peut aussi éviter des doublons), et surtout je réaliserais ça en PL/SQL pour contrôler les opérations et loguer les résultats (OK/KO).

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : avril 2014
    Messages : 18
    Points : 10
    Points
    10

    Par défaut

    merci

    j'aurai bien vu une sorte de script pour l'adapter à ma situation avec la fonction Merge et aussi PL/SQL
    il faut que je fasse un script dans n’importe qu'il langage qui permet de traiter tous ses requête en une fois affichant le statut de chaque table et Le Nb de donnée à migrer etc
    voila mon code que je suis entrain de le faire pour une seule table
    ma question pour plusieurs table je dois le faire comment

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MERGE INTO COMM_PJ a
        USING CONCL_PJ b
        ON (a.PJ_ID = b.CLS_ID)
      WHEN MATCHED THEN
        UPDATE SET a.ID_fr = b.CL_ID
      WHEN NOT MATCHED THEN
        INSERT (PJ_ID,ID_cls,PJ_LI,PJ_CON)  
        VALUES (b.CL_PJ_ID, b.CL_ID, b.CL_PJ_LIEN, b.CLS_PJ_CON);

    merci encore

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : avril 2014
    Messages : 18
    Points : 10
    Points
    10

    Par défaut

    salut
    comment je peux mettre un PL/SQL pour contrôler les opérations et loguer les résultats (OK/KO).?

    Merci

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : avril 2014
    Messages : 18
    Points : 10
    Points
    10

    Par défaut

    Bonjour
    n’hésitez pas à me donner des solutions ou bien des conseil
    je suis toujours preneur
    merci

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : avril 2014
    Messages : 18
    Points : 10
    Points
    10

    Par défaut

    bonsoir
    j'attends toujours votre aide pour développer mon Code sql
    merci encore

Discussions similaires

  1. creer plusieurs tables avec un seul script
    Par abj8077 dans le forum Requêtes
    Réponses: 8
    Dernier message: 18/02/2011, 19h32
  2. Réponses: 6
    Dernier message: 05/07/2009, 15h35
  3. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  4. Une seule table VS plusieurs tables
    Par LostControl dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/08/2003, 10h56
  5. [SQL] Sélection ds plusieurs table
    Par lord_paco dans le forum MS SQL-Server
    Réponses: 2
    Dernier message: 24/07/2003, 17h53

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