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

SQL Oracle Discussion :

[8i]impossible de créer une table dans une procedure stockée ?


Sujet :

SQL Oracle

  1. #41
    Membre du Club
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    hier :

    en faites j'ai remarqué un peu trop tard que j'avais plus de quoi faire l'intersect, donc le now rows selected n'est pas fiable...
    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
    truncate table extfil_temp
    truncate table extfil_hist
     
    insert into extfil_temp
    select * FROM extfil
    MINUS
    select * FROM extfil_hist
     
    truncate extfil
     
    insert into extfil (besoin de remplir extfil pour diverses raisons)
    select * from extfil_temp
     
    insert into extfil_hist
    select * from extfil_temp
     
    et apres la fin de tous les traitements :
     
    truncate extfil
    aujourd'hui :

    (extfil ayant de nouvelles données)
    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
    truncate table extfil_temp
     
    insert into extfil_temp
    select * FROM extfil
    MINUS
    select * FROM extfil_hist
     
    truncate extfil
     
    insert into extfil
    select * from extfil_temp
     
    insert into extfil_hist
    select * from extfil_temp
     
    select * from extfil_temp
    intersect
    select * FROM extfil_hist
    => 15525
    et cela sachant que j'ai disons environ 80.000 données par jour qui viennent dans extfil...

    reflexion : dans cette situation, ne pourrais t on pas penser que j'ai des doublons dans le extfil que je recois tous les jours ?

  2. #42
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Pff... mais c'est normal que t'en ait 15525 dans l'intersect !
    Tu as déjà inséré dans hist !!!
    Ce sont toutes les nouveautés (count de temp).

    Le but de l'intersect est de vérifier que tu ne vas pas insérer de doublons de temp->hist


    Bref, tu n'as pas de doublons dans hist aujourd'hui ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #43
    Membre du Club
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select count(*) from
    (select SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT, CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER, DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE, DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE, SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE, TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF, DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO, PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV, COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT, HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80, DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR, count(*)
    from extfil_hist e
    group by SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT, CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER, DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE, DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE, SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE, TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF, DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO, PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV, COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT, HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80, DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR
    having count(*) > 1);
     
    -> 15769
    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
    select count(*) from
    (
    SELECT SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT, 
    		CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER, 
    DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE, 
    DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE, 
    SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE, 
    TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF, 
    DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO, 
    PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV, 
    COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT, 
    HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80, 
    DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR
    FROM extfil_temp
    INTERSECT
    SELECT SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT, 
    		CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER, 
    DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE, 
    DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE, 
    SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE, 
    TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF, 
    DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO, 
    PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV, 
    COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT, 
    HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80, 
    DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR
    FROM extfil_hist);
     
    -> 84259
    et la les resultats sont bons a 100%... (en faites y avait eu un prob sur la base ce matin, du coup la requete a mal fonctionné, mais la c'est bon)

  4. #44
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Bon, on va reprendre calmement chaque étape que tu as fait hier et ce matin :
    Peut tu les refaire en notant le nb de lignes et en comptant les doublons dans les tables.
    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
    TRUNCATE TABLE extfil_temp
    TRUNCATE TABLE extfil_hist
     
    INSERT INTO extfil_temp
    SELECT * FROM extfil
    MINUS
    SELECT * FROM extfil_hist
    >> Afficher le nb de lignes
    >> Compter le nb de doublons extfil_temp (Si différent de 0, c'est pas possible. Bug à trouver)
     
    TRUNCATE extfil
    INSERT INTO extfil (besoin de remplir extfil pour diverses raisons)
    SELECT * FROM extfil_temp
     
    INSERT INTO extfil_hist
    SELECT * FROM extfil_temp
    >> Afficher le nb de lignes
    >> Compter le nb de doublons extfil_hist (Si différent de 0, c'est pas possible)
     
    et apres la fin de tous les traitements :
    TRUNCATE extfil
    Traitement du matin
    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
    >> Nb de lignes dans extfil_hist
    >> Nb de doublons dans extfil_hist
     
    TRUNCATE TABLE extfil_temp
     
    INSERT INTO extfil_temp
    SELECT * FROM extfil
    MINUS
    SELECT * FROM extfil_hist
    >> Nb de lignes dans extfil_temp
    >> Nb de doublons dans extfil_temp
     
    TRUNCATE extfil
    INSERT INTO extfil
    SELECT * FROM extfil_temp
     
    SELECT * FROM extfil_temp
    INTERSECT
    SELECT * FROM extfil_hist
    >> Nb de lignes (Si différent de 0 c'est un bug.)
     
    INSERT INTO extfil_hist
    SELECT * FROM extfil_temp
    >> nb de doublons dans extfil_hist
    Le but est de trouver à quel moment les doublons apparaissent.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #45
    Membre du Club
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    je peux deja y répondre...
    les doublons sont apparus ce matin, lors de l'insert de extfil_temp dans extfil_hist, je ne vois que ca...
    extfil_temp ayant du récupérer des doublons...

    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
    insert into extfil
    select * from extfil_temp;
     
    84259 rows created.
     
    SQL> commit;
     
    Commit complete.
     
    SQL> insert into extfil_temp
      2  select * from extfil
      3  minus
      4  select * from extfil_hist;
     
    0 rows created.
     
    SQL>
    Je donne ce bout de code, cela à l'air interessant, juste que extfil_temp je n'y ait pas touché depuis ce matin, extfil était vide...

  6. #46
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Le MINUS enlève les doublons (ton insert dans _temp n'insère aucune ligne).

    Pourquoi passer d'ailleurs par une table _temp ?
    Si tu oublies de la purger, c'est sur que tu va réinsérer les lignes de la veille.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  7. #47
    Membre du Club
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Non je n'oublie pas de le purger...
    C'etait juste un test...avant chaque insertion (lors de mes traitements habituels), je purge le temp...
    Ce que je voulais montrer avec ce test, c'est que l'insertion ne fonctionne pas lorsque j'ai les memes données entre extfil et extfil_hist, ce qui est ce qu'on recherche...
    Mais en faites, cela complique encore la chose, vu que la, je ne sais vraiment pas d'ou le probleme peut venir.

  8. #48
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Bon, on est d'accord sur ce point. L'insertion dans temp des lignes communes entre extfil et extfil_hist ne se fait pas.

    D'où le test à faire de la vérif des doublons dans hist avant de lancer la procédure le matin. Et de compter le nb de ligne après la procédure et avant de la relancer.
    T'as forcémment quelque chose de modifié entre les 2 procédures.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  9. #49
    Membre du Club
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    j'ai compter le nombre de doublons dans l'historique ce matin :
    15749

    je met la procédure en entier :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    CREATE OR REPLACE PROCEDURE PR_EXTFIL as
     
    BEGIN
     
    insert into test_prod
    select to_char(sysdate, 'dd/mm/yy hh24:mi:ss') from dual;
     
    commit;
     
    --MAJ TYPE ARTICLE COMPTE INTERNE OPI
     
    UPDATE EXTFIL SET type_article = 'O'
    where code_client = '3128003'
    or code_client = '7228004'
    or code_client = '9228000'
    or code_client = '5528002'
    or code_client = '5128009'
    or code_client = '6928001'
    or code_client = '7828001';
     
    commit;
     
    --MAJ PS 400
     
    UPDATE EXTFIL SET type_article = 'O'
    WHERE (PS1='400') OR (PS2='400') OR (PS3='400') OR (PS4='400') OR (PS5='400');
     
    commit;
     
    --MAJ CODE_DEFAUT 947
     
    UPDATE EXTFIL e SET e.type_article = 'D'
    WHERE e.bordereau in
    	(	SELECT DISTINCT EXTFIL.bordereau
    		FROM EXTFIL
    		WHERE EXTFIL.code_defaut='947')
    AND e.oeil in
    	(	SELECT DISTINCT titi.oeil
    		FROM EXTFIL titi
    		WHERE titi.code_defaut='947'
    		and e.bordereau = titi.bordereau);
     
    commit;
     
    --MAJ CODE_DEFAUT 944
     
    UPDATE EXTFIL e SET e.type_article = 'U'
    WHERE e.bordereau in
    	(	SELECT DISTINCT EXTFIL.bordereau
    		FROM EXTFIL
    		WHERE EXTFIL.code_defaut='944')
    AND e.oeil in
    	(	SELECT DISTINCT titi.oeil
    		FROM EXTFIL titi
    		WHERE titi.code_defaut='944'
    		and e.bordereau = titi.bordereau);
     
    commit;
     
    --RAZ DES COMMANDES DE PLUS DE 80 JOURS
     
    delete from extfil_hist where to_date(date_commande, 'yymmdd') <= to_date(to_char(sysdate - 80, 'yymmdd'), 'yymmdd');
     
    commit;
     
    delete from extfil where to_date(date_commande, 'yymmdd') <= to_date(to_char(sysdate - 80, 'yymmdd'), 'yymmdd');
     
    commit;
     
    --suppression des doublons
     
    delete from extfil_temp;
     
    commit;
     
    insert into extfil_temp (SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT, CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER, DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE, DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE, SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE, TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF, DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO, PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV, COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT, HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80, DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR)
    SELECT SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT,
    		CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER,
    DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE,
    DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE,
    SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE,
    TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF,
    DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO,
    PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV,
    COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT,
    HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80,
    DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR
    FROM extfil
    MINUS
    SELECT SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT,
    		CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER,
    DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE,
    DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE,
    SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE,
    TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF,
    DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO,
    PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV,
    COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT,
    HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80,
    DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR
    FROM extfil_hist;
     
    commit;
     
    delete from extfil;
     
    commit;
     
    insert into extfil(SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT, CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER, DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE, DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE, SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE, TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF, DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO, PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV, COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT, HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80, DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR)
    select SERVEUR, EMETTEUR, BORDEREAU, NUMERO_DE_LIGNE, PHASE_REBUT, DATE_REBUT, HEURE_REBUT, CODE_DEFAUT, OEIL, DATE_COMMANDE, HEURE_COMMANDE, DATE_BON_A_FACTURER, HEURE_BON_A_FACTURER, DATE_ANNULATION, HEURE_ANNULATION, TYPE_ARTICLE, TYPE_FABRICATION2, STOCK_1_FAB_0, MARQUE, TEINTE, DIAMETRE, SPHERE, CYLINDRE, PS1, PS2, PS3, PS4, PS5, CODE_CLIENT, CORRESPONDANTE, SERVEUR_FORCE_PDC, DELAI_COMMANDE, DELAI_CHARTE, QUANTITE, STOCK_EN_ETAT, MANQUANT, MATIERE, TYPE_MATIERE, GENRE, TYPE_COLO, TYPE_CSV, TYPE_TSV, PHASE_00, DATE_00, HEURE_00, PHASE_SURF, DATE_SURF, HEURE_SURF, COMPTEUR_SURF, PHASE_COLO, DATE_COLO, HEURE_COLO, COMPTEUR_COLO, PHASE_SUPRA, DATE_SUPRA, HEURE_SUPRA, COMPTEUR_SUPRA, PHASE_CSV, DATE_CSV, HEURE_CSV, COMPTEUR_CSV, PHASE_TSV, DATE_TSV, HEURE_TSV, COMPTEUR_TSV, PHASE_TOPCOAT, DATE_TOPCOAT, HEURE_TOPCOAT, COMPTEUR_TOP_COAT, PHASE_70, DATE_70, HEURE_70, COMPTEUR_70, PHASE_80, DATE_80, HEURE_80, COMPTEUR_80, PHASE_FIN, DATE_FIN, HEURE_FIN, COMPTEUR
    from extfil_temp;
     
    commit;
     
    --INSERTION DANS EXTFIL_HIST
     
    insert into extfil_hist (
    select * from extfil );
     
    commit;
     
    END;
    /
     
    et a la fin de toutes mes procédures (qui n'inserent ni dans l'hist ni dans le temps, ni dans extfil - >
    delete from extfil;
    edit : bon, juste au cas ou une précision, je n'ai qu'une seule procédure qui est concernée, l'autre fois c'etait pour faire un test...

  10. #50
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Cette discussion ressemble beaucoup à celle-ci
    http://www.developpez.net/forums/showthread.php?t=322579
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  11. #51
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Pour moi 2 choses ne vont pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DELETE FROM extfil;
    COMMIT;
     
    INSERT INTO extfil(SERVEUR, EMETTEUR, ...)
    SELECT SERVEUR, EMETTEUR, ...
    FROM extfil_temp;
    COMMIT;
     
    --INSERTION DANS EXTFIL_HIST
    INSERT INTO extfil_hist (
    SELECT * FROM extfil );
    1/ Dans l'insert sur extfil_hist, faut mettre le nom des colonnes.
    Si ça se trouve l'ordre des colonnes de EXTFIL et EXTFIL_HIST n'est pas le même.

    2/ si EXTFIL est alimentée (80 000 lignes par jour, ça fait 1 ligne/s) entre le DELETE et le INSERT INTO extfil_hist, tu auras ces lignes d'insérées dans extfil_hist sans l'être dans temp.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  12. #52
    Membre du Club
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Garuda
    Cette discussion ressemble beaucoup à celle-ci
    http://www.developpez.net/forums/showthread.php?t=322579
    oui parce que c'est le même problème (vous voyez comme ca traine...)

    Pour le insert dans le hist je vais suivre ton conseil et mettre le nom des colonnes.

    Une chose aussi, mon extfil ne recoit pas des données pendant toute la journée, ca se fait en une fois le matin, je peux récupérer si besoin les infos la journée, mais normalement les données inséré dans extfil au départ ne changent pas de la journée...
    Mon traitement est censé fonctionner qu'une seule fois dans la journée.

  13. #53
    Membre du Club
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Points : 56
    Points
    56
    Par défaut

  14. #54
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Il faut que tu fasse ce que je t'ai dit de faire :
    Repartir de 0 doublons, et afficher le nb de ligne insérées et existant dans tes tables ainsi que les doublons à chaque fois.

    On pourra pas plus t'aider sans ces chiffres.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  4. Comment créer une table dans une table ?
    Par Invité dans le forum Débuter
    Réponses: 8
    Dernier message: 15/06/2007, 14h55
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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