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. #1
    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 [7i]impossible de créer une table dans une procedure stockée ?
    Bonjour tout le monde,
    Voila c'est certainement une erreur de debutant, mais il y a une chose que je ne savais pas, ou dont je ne me rappelle plus, est ce normal de ne pas pouvoir créer une table dans une procédure stockée ?

    Cela me semble bizarre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PLS-00103: Encountered the symbol "CREATE" when expecting one of the following:
     
       begin declare end exception exit for goto if loop mod null
    Comment on peut le faire malgres cette erreur ?

    Merci d'avance!

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BEGIN
      EXECUTE IMMEDIATE 'CREATE TABLE my_table.......';
    ....
    END;

  3. #3
    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
    hmm...

    désolé, ca fait celui qui attend qu'on lui mette tout sous le bec, mais la c'est un peu l'inconnu pour moi, je ne connaissai absolument pas cette méthode.

    Juste pour info, mon create table se sert d'un select pour se créer, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create table toto as
    select tab.titi
    from tab, tab2
    where tab.titi != tab.tutu
    et voila mon message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PLS-00103: Encountered the symbol "IMMEDIATE" when expecting one of the following:
     
       := . ( @ % ;
    The symbol ":= was inserted before "IMMEDIATE" to continue.
    merci d'avance...

  4. #4
    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
    Mettre l'erreur c'est bien.
    Mettre le code origine de l'erreur, c'est mieux !

  5. #5
    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
    vivi, c'est vrai...

    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
    EXECUTE IMMEDIATE 'create table ext_temp as 
    select a.SERVEUR, a.EMETTEUR, a.BORDEREAU, a.NUMERO_DE_LIGNE, a.PHASE_REBUT, a.DATE_REBUT, a.HEURE_REBUT, a.CODE_DEFAUT, a.OEIL, a.DATE_COMMANDE, a.HEURE_COMMANDE, a.DATE_BON_A_FACTURER, a.HEURE_BON_A_FACTURER, a.DATE_ANNULATION, a.HEURE_ANNULATION, a.TYPE_ARTICLE, a.TYPE_FABRICATION2, a.STOCK_1_FAB_0, a.MARQUE, a.TEINTE, a.DIAMETRE, a.SPHERE, a.CYLINDRE, a.PS1, a.PS2, a.PS3, a.PS4, a.PS5, a.CODE_CLIENT, a.CORRESPONDANTE, a.SERVEUR_FORCE_PDC, a.DELAI_COMMANDE, a.DELAI_CHARTE, a.QUANTITE, a.STOCK_EN_ETAT, a.MANQUANT, a.MATIERE, a.TYPE_MATIERE, a.GENRE, a.TYPE_COLO, a.TYPE_CSV, a.TYPE_TSV, a.PHASE_00, a.DATE_00, a.HEURE_00, a.PHASE_SURF, a.DATE_SURF, a.HEURE_SURF, a.COMPTEUR_SURF, a.PHASE_COLO, a.DATE_COLO, a.HEURE_COLO, a.COMPTEUR_COLO, a.PHASE_SUPRA, a.DATE_SUPRA, a.HEURE_SUPRA, a.COMPTEUR_SUPRA, a.PHASE_CSV, a.DATE_CSV, a.HEURE_CSV, a.COMPTEUR_CSV, a.PHASE_TSV, a.DATE_TSV, a.HEURE_TSV, a.COMPTEUR_TSV, a.PHASE_TOPCOAT, a.DATE_TOPCOAT, a.HEURE_TOPCOAT, a.COMPTEUR_TOP_COAT, a.PHASE_70, a.DATE_70, a.HEURE_70, a.COMPTEUR_70, a.PHASE_80, a.DATE_80, a.HEURE_80, a.COMPTEUR_80, a.PHASE_FIN, a.DATE_FIN, a.HEURE_FIN, a.COMPTEUR
    from extfil a, extfil_hist b
    WHERE  a.SERVEUR != b.SERVEUR AND a.EMETTEUR != b.EMETTEUR AND a.BORDEREAU != b.BORDEREAU AND 
    	a.NUMERO_DE_LIGNE != b.NUMERO_DE_LIGNE AND a.PHASE_REBUT != b.PHASE_REBUT AND 
    	a.DATE_REBUT != b.DATE_REBUT AND a.HEURE_REBUT != b.HEURE_REBUT AND 
    	a.CODE_DEFAUT != b.CODE_DEFAUT AND a.OEIL != b.OEIL AND a.DATE_COMMANDE != b.DATE_COMMANDE AND 
    	a.HEURE_COMMANDE != b.HEURE_COMMANDE AND a.DATE_BON_A_FACTURER != b.DATE_BON_A_FACTURER AND 
    	a.HEURE_BON_A_FACTURER != b.HEURE_BON_A_FACTURER AND a.DATE_ANNULATION != b.DATE_ANNULATION AND 
    	a.HEURE_ANNULATION != b.HEURE_ANNULATION AND a.TYPE_ARTICLE != b.TYPE_ARTICLE AND 
    	a.TYPE_FABRICATION2 != b.TYPE_FABRICATION2 AND a.STOCK_1_FAB_0 != b.STOCK_1_FAB_0 AND 
    	a.MARQUE != b.MARQUE AND a.TEINTE != b.TEINTE AND 
    	a.DIAMETRE != b.DIAMETRE AND a.SPHERE != b.SPHERE AND a.CYLINDRE != b.CYLINDRE AND 
    	a.PS1 != b.PS1 AND a.PS2 != b.PS2 AND a.PS3 != b.PS3 AND a.PS4 != b.PS4 AND 
    	a.PS5 != b.PS5 AND a.CODE_CLIENT != b.CODE_CLIENT AND a.CORRESPONDANTE != b.CORRESPONDANTE AND 
    	a.SERVEUR_FORCE_PDC != b.SERVEUR_FORCE_PDC AND a.DELAI_COMMANDE != b.DELAI_COMMANDE AND 
    	a.DELAI_CHARTE != b.DELAI_CHARTE AND a.QUANTITE != b.QUANTITE AND 
    	a.STOCK_EN_ETAT != b.STOCK_EN_ETAT AND a.MANQUANT != b.MANQUANT AND a.MATIERE != b.MATIERE AND 
    	a.TYPE_MATIERE != b.TYPE_MATIERE AND a.GENRE != b.GENRE AND a.TYPE_COLO != b.TYPE_COLO AND 
    	a.TYPE_CSV != b.TYPE_CSV AND a.TYPE_TSV != b.TYPE_TSV AND a.PHASE_00 != b.PHASE_00 AND 
    	a.DATE_00 != b.DATE_00 AND a.HEURE_00 != b.HEURE_00 AND 
    	a.PHASE_SURF != b.PHASE_SURF AND a.DATE_SURF != b.DATE_SURF AND a.HEURE_SURF != b.HEURE_SURF AND 
    	a.COMPTEUR_SURF != b.COMPTEUR_SURF AND a.PHASE_COLO != b.PHASE_COLO AND 
    	a.DATE_COLO != b.DATE_COLO AND a.HEURE_COLO != b.HEURE_COLO AND a.COMPTEUR_COLO != b.COMPTEUR_COLO AND 
    	a.PHASE_SUPRA != b.PHASE_SUPRA AND a.DATE_SUPRA != b.DATE_SUPRA AND a.HEURE_SUPRA != b.HEURE_SUPRA AND 
    	a.COMPTEUR_SUPRA != b.COMPTEUR_SUPRA AND a.PHASE_CSV != b.PHASE_CSV AND a.DATE_CSV != b.DATE_CSV AND 
    	a.HEURE_CSV != b.HEURE_CSV AND a.COMPTEUR_CSV != b.COMPTEUR_CSV AND 
    	a.PHASE_TSV != b.PHASE_TSV AND a.DATE_TSV != b.DATE_TSV AND a.HEURE_TSV != b.HEURE_TSV AND 
    	a.COMPTEUR_TSV != b.COMPTEUR_TSV AND a.PHASE_TOPCOAT != b.PHASE_TOPCOAT AND a.DATE_TOPCOAT != b.DATE_TOPCOAT AND 
    	a.HEURE_TOPCOAT != b.HEURE_TOPCOAT AND a.COMPTEUR_TOP_COAT != b.COMPTEUR_TOP_COAT AND 
    	a.PHASE_70 != b.PHASE_70 AND a.DATE_70 != b.DATE_70 AND a.HEURE_70 != b.HEURE_70 AND 
    	a.COMPTEUR_70 != b.COMPTEUR_70 AND a.PHASE_80 != b.PHASE_80 AND a.DATE_80 != b.DATE_80 AND 
    	a.HEURE_80 != b.HEURE_80 AND a.COMPTEUR_80 != b.COMPTEUR_80 AND a.PHASE_FIN != b.PHASE_FIN AND 
    	a.DATE_FIN != b.DATE_FIN AND a.HEURE_FIN != b.HEURE_FIN AND a.COMPTEUR != b.COMPTEUR';

  6. #6
    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
    Il ne s'agit pas d'une procédure stockée !
    Ou alors, il manque plein de trucs !

  7. #7
    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
    Commentaires sur la requete :
    Pourquoi faire un select sur xtfil_hist b alors qu'elle n'est pas utilisée ?

    Faire plutot '

    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
    select ... from extfil a
     WHERE NOT EXISTS ( SELECT 1 FROM extfil_hist b
    a.SERVEUR = b.SERVEUR AND a.EMETTEUR = b.EMETTEUR AND a.BORDEREAU = b.BORDEREAU AND 
        a.NUMERO_DE_LIGNE = b.NUMERO_DE_LIGNE AND a.PHASE_REBUT = b.PHASE_REBUT AND 
        a.DATE_REBUT = b.DATE_REBUT AND a.HEURE_REBUT = b.HEURE_REBUT AND 
        a.CODE_DEFAUT = b.CODE_DEFAUT AND a.OEIL = b.OEIL AND a.DATE_COMMANDE = b.DATE_COMMANDE AND 
        a.HEURE_COMMANDE = b.HEURE_COMMANDE AND a.DATE_BON_A_FACTURER = b.DATE_BON_A_FACTURER AND 
        a.HEURE_BON_A_FACTURER = b.HEURE_BON_A_FACTURER AND a.DATE_ANNULATION = b.DATE_ANNULATION AND 
        a.HEURE_ANNULATION = b.HEURE_ANNULATION AND a.TYPE_ARTICLE = b.TYPE_ARTICLE AND 
        a.TYPE_FABRICATION2 = b.TYPE_FABRICATION2 AND a.STOCK_1_FAB_0 = b.STOCK_1_FAB_0 AND 
        a.MARQUE = b.MARQUE AND a.TEINTE = b.TEINTE AND 
        a.DIAMETRE = b.DIAMETRE AND a.SPHERE = b.SPHERE AND a.CYLINDRE = b.CYLINDRE AND 
        a.PS1 = b.PS1 AND a.PS2 = b.PS2 AND a.PS3 = b.PS3 AND a.PS4 = b.PS4 AND 
        a.PS5 = b.PS5 AND a.CODE_CLIENT = b.CODE_CLIENT AND a.CORRESPONDANTE = b.CORRESPONDANTE AND 
        a.SERVEUR_FORCE_PDC = b.SERVEUR_FORCE_PDC AND a.DELAI_COMMANDE = b.DELAI_COMMANDE AND 
        a.DELAI_CHARTE = b.DELAI_CHARTE AND a.QUANTITE = b.QUANTITE AND 
        a.STOCK_EN_ETAT = b.STOCK_EN_ETAT AND a.MANQUANT = b.MANQUANT AND a.MATIERE = b.MATIERE AND 
        a.TYPE_MATIERE = b.TYPE_MATIERE AND a.GENRE = b.GENRE AND a.TYPE_COLO = b.TYPE_COLO AND 
        a.TYPE_CSV = b.TYPE_CSV AND a.TYPE_TSV = b.TYPE_TSV AND a.PHASE_00 = b.PHASE_00 AND 
        a.DATE_00 = b.DATE_00 AND a.HEURE_00 = b.HEURE_00 AND 
        a.PHASE_SURF = b.PHASE_SURF AND a.DATE_SURF = b.DATE_SURF AND a.HEURE_SURF = b.HEURE_SURF AND 
        a.COMPTEUR_SURF = b.COMPTEUR_SURF AND a.PHASE_COLO = b.PHASE_COLO AND 
        a.DATE_COLO = b.DATE_COLO AND a.HEURE_COLO = b.HEURE_COLO AND a.COMPTEUR_COLO = b.COMPTEUR_COLO AND 
        a.PHASE_SUPRA = b.PHASE_SUPRA AND a.DATE_SUPRA = b.DATE_SUPRA AND a.HEURE_SUPRA = b.HEURE_SUPRA AND 
        a.COMPTEUR_SUPRA = b.COMPTEUR_SUPRA AND a.PHASE_CSV = b.PHASE_CSV AND a.DATE_CSV = b.DATE_CSV AND 
        a.HEURE_CSV = b.HEURE_CSV AND a.COMPTEUR_CSV = b.COMPTEUR_CSV AND 
        a.PHASE_TSV = b.PHASE_TSV AND a.DATE_TSV = b.DATE_TSV AND a.HEURE_TSV = b.HEURE_TSV AND 
        a.COMPTEUR_TSV = b.COMPTEUR_TSV AND a.PHASE_TOPCOAT = b.PHASE_TOPCOAT AND a.DATE_TOPCOAT = b.DATE_TOPCOAT AND 
        a.HEURE_TOPCOAT = b.HEURE_TOPCOAT AND a.COMPTEUR_TOP_COAT = b.COMPTEUR_TOP_COAT AND 
        a.PHASE_70 = b.PHASE_70 AND a.DATE_70 = b.DATE_70 AND a.HEURE_70 = b.HEURE_70 AND 
        a.COMPTEUR_70 = b.COMPTEUR_70 AND a.PHASE_80 = b.PHASE_80 AND a.DATE_80 = b.DATE_80 AND 
        a.HEURE_80 = b.HEURE_80 AND a.COMPTEUR_80 = b.COMPTEUR_80 AND a.PHASE_FIN = b.PHASE_FIN AND 
        a.DATE_FIN = b.DATE_FIN AND a.HEURE_FIN = b.HEURE_FIN AND a.COMPTEUR = b.COMPTEUR)

  8. #8
    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
    bon, voila le code en un peu plus complet :

    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
    CREATE OR REPLACE PROCEDURE PR_EXTFIL is
     
    BEGIN
    EXECUTE IMMEDIATE 'create table ext_temp as 
    select a.SERVEUR, a.EMETTEUR, a.BORDEREAU, a.NUMERO_DE_LIGNE, a.PHASE_REBUT, a.DATE_REBUT, a.HEURE_REBUT, a.CODE_DEFAUT, a.OEIL, a.DATE_COMMANDE, a.HEURE_COMMANDE, a.DATE_BON_A_FACTURER, a.HEURE_BON_A_FACTURER, a.DATE_ANNULATION, a.HEURE_ANNULATION, a.TYPE_ARTICLE, a.TYPE_FABRICATION2, a.STOCK_1_FAB_0, a.MARQUE, a.TEINTE, a.DIAMETRE, a.SPHERE, a.CYLINDRE, a.PS1, a.PS2, a.PS3, a.PS4, a.PS5, a.CODE_CLIENT, a.CORRESPONDANTE, a.SERVEUR_FORCE_PDC, a.DELAI_COMMANDE, a.DELAI_CHARTE, a.QUANTITE, a.STOCK_EN_ETAT, a.MANQUANT, a.MATIERE, a.TYPE_MATIERE, a.GENRE, a.TYPE_COLO, a.TYPE_CSV, a.TYPE_TSV, a.PHASE_00, a.DATE_00, a.HEURE_00, a.PHASE_SURF, a.DATE_SURF, a.HEURE_SURF, a.COMPTEUR_SURF, a.PHASE_COLO, a.DATE_COLO, a.HEURE_COLO, a.COMPTEUR_COLO, a.PHASE_SUPRA, a.DATE_SUPRA, a.HEURE_SUPRA, a.COMPTEUR_SUPRA, a.PHASE_CSV, a.DATE_CSV, a.HEURE_CSV, a.COMPTEUR_CSV, a.PHASE_TSV, a.DATE_TSV, a.HEURE_TSV, a.COMPTEUR_TSV, a.PHASE_TOPCOAT, a.DATE_TOPCOAT, a.HEURE_TOPCOAT, a.COMPTEUR_TOP_COAT, a.PHASE_70, a.DATE_70, a.HEURE_70, a.COMPTEUR_70, a.PHASE_80, a.DATE_80, a.HEURE_80, a.COMPTEUR_80, a.PHASE_FIN, a.DATE_FIN, a.HEURE_FIN, a.COMPTEUR
    from extfil a, extfil_hist b
    WHERE  a.SERVEUR != b.SERVEUR AND a.EMETTEUR != b.EMETTEUR AND a.BORDEREAU != b.BORDEREAU AND 
    	a.NUMERO_DE_LIGNE != b.NUMERO_DE_LIGNE AND a.PHASE_REBUT != b.PHASE_REBUT AND 
    	a.DATE_REBUT != b.DATE_REBUT AND a.HEURE_REBUT != b.HEURE_REBUT AND 
    	a.CODE_DEFAUT != b.CODE_DEFAUT AND a.OEIL != b.OEIL AND a.DATE_COMMANDE != b.DATE_COMMANDE AND 
    	a.HEURE_COMMANDE != b.HEURE_COMMANDE AND a.DATE_BON_A_FACTURER != b.DATE_BON_A_FACTURER AND 
    	a.HEURE_BON_A_FACTURER != b.HEURE_BON_A_FACTURER AND a.DATE_ANNULATION != b.DATE_ANNULATION AND 
    	a.HEURE_ANNULATION != b.HEURE_ANNULATION AND a.TYPE_ARTICLE != b.TYPE_ARTICLE AND 
    	a.TYPE_FABRICATION2 != b.TYPE_FABRICATION2 AND a.STOCK_1_FAB_0 != b.STOCK_1_FAB_0 AND 
    	a.MARQUE != b.MARQUE AND a.TEINTE != b.TEINTE AND 
    	a.DIAMETRE != b.DIAMETRE AND a.SPHERE != b.SPHERE AND a.CYLINDRE != b.CYLINDRE AND 
    	a.PS1 != b.PS1 AND a.PS2 != b.PS2 AND a.PS3 != b.PS3 AND a.PS4 != b.PS4 AND 
    	a.PS5 != b.PS5 AND a.CODE_CLIENT != b.CODE_CLIENT AND a.CORRESPONDANTE != b.CORRESPONDANTE AND 
    	a.SERVEUR_FORCE_PDC != b.SERVEUR_FORCE_PDC AND a.DELAI_COMMANDE != b.DELAI_COMMANDE AND 
    	a.DELAI_CHARTE != b.DELAI_CHARTE AND a.QUANTITE != b.QUANTITE AND 
    	a.STOCK_EN_ETAT != b.STOCK_EN_ETAT AND a.MANQUANT != b.MANQUANT AND a.MATIERE != b.MATIERE AND 
    	a.TYPE_MATIERE != b.TYPE_MATIERE AND a.GENRE != b.GENRE AND a.TYPE_COLO != b.TYPE_COLO AND 
    	a.TYPE_CSV != b.TYPE_CSV AND a.TYPE_TSV != b.TYPE_TSV AND a.PHASE_00 != b.PHASE_00 AND 
    	a.DATE_00 != b.DATE_00 AND a.HEURE_00 != b.HEURE_00 AND 
    	a.PHASE_SURF != b.PHASE_SURF AND a.DATE_SURF != b.DATE_SURF AND a.HEURE_SURF != b.HEURE_SURF AND 
    	a.COMPTEUR_SURF != b.COMPTEUR_SURF AND a.PHASE_COLO != b.PHASE_COLO AND 
    	a.DATE_COLO != b.DATE_COLO AND a.HEURE_COLO != b.HEURE_COLO AND a.COMPTEUR_COLO != b.COMPTEUR_COLO AND 
    	a.PHASE_SUPRA != b.PHASE_SUPRA AND a.DATE_SUPRA != b.DATE_SUPRA AND a.HEURE_SUPRA != b.HEURE_SUPRA AND 
    	a.COMPTEUR_SUPRA != b.COMPTEUR_SUPRA AND a.PHASE_CSV != b.PHASE_CSV AND a.DATE_CSV != b.DATE_CSV AND 
    	a.HEURE_CSV != b.HEURE_CSV AND a.COMPTEUR_CSV != b.COMPTEUR_CSV AND 
    	a.PHASE_TSV != b.PHASE_TSV AND a.DATE_TSV != b.DATE_TSV AND a.HEURE_TSV != b.HEURE_TSV AND 
    	a.COMPTEUR_TSV != b.COMPTEUR_TSV AND a.PHASE_TOPCOAT != b.PHASE_TOPCOAT AND a.DATE_TOPCOAT != b.DATE_TOPCOAT AND 
    	a.HEURE_TOPCOAT != b.HEURE_TOPCOAT AND a.COMPTEUR_TOP_COAT != b.COMPTEUR_TOP_COAT AND 
    	a.PHASE_70 != b.PHASE_70 AND a.DATE_70 != b.DATE_70 AND a.HEURE_70 != b.HEURE_70 AND 
    	a.COMPTEUR_70 != b.COMPTEUR_70 AND a.PHASE_80 != b.PHASE_80 AND a.DATE_80 != b.DATE_80 AND 
    	a.HEURE_80 != b.HEURE_80 AND a.COMPTEUR_80 != b.COMPTEUR_80 AND a.PHASE_FIN != b.PHASE_FIN AND 
    	a.DATE_FIN != b.DATE_FIN AND a.HEURE_FIN != b.HEURE_FIN AND a.COMPTEUR != b.COMPTEUR';
     
    commit;
     
    end;
    /
    bon j'ai pas non plus tout mis, sinon il y en a pour des pages...

    Et je ne vois pas si cela se voit, mais en faites je suis en train de créer une table intermediaire, prenant des infos d'une table journaliere qui ne sont pas dans une autre table (historique), cela me sert a virer des doublons parfait.

    Dans la requete que tu m'as donné, je connaissais le not exists, je l'ai deja utilisé auparavant mais il ne fonctionnait pas bien, et il y a une chose qui me surprend c'est le "select 1"...cela fait quoi ?

  9. #9
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Ta table extfil contient 80 colonnes

    Je pense que t'as un problème de conception.

  10. #10
    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
    ouep, et environ 60.000 lignes, extfil_hist en contient qqchose comme 5.000.000.

    Ce n'est pas moi qui ait fait que ce soit ainsi, cela va bien plus haut, et helas je ne peux rien y changer...

  11. #11
    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
    1) Il faut mettre AS et pas IS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE OR REPLACE PROCEDURE 
    PR_EXTFIL AS
    2) SELECT 1 renvoie 1 s'il y a au moins un enregistrement dans la sous requête, sinon rien (et le not exists est vrai dans ce cas)

  12. #12
    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
    hmm...le as/is est vraiment si différent ?
    Car on a un paquet de procedure qui sont ainsi...et pourtant elles fonctionnent tres bien.

    Et merci pour la précision sur le "select 1" et le not exists, je crois que je vais pousser un peu plus par la...
    (avant j'utilisais une requete utilisant le rowid, mais elle fonctionne pas sniff...)

  13. #13
    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
    Juste un mot : Attention, tu ne gères pas les champs NULL.

    Vu que t'es en 8, essaye jsute pour voir si ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE PROCEDURE P_TEST AS 
     var NUMBER;
    BEGIN
    EXECUTE IMMEDIATE 'SELECT 1 FROM DUAL' INTO var;
    DBMS_OUTPUT.PUT_LINE('Retour : ' || var);
    END;
    Ca compile ?

  14. #14
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Citation Envoyé par Garuda
    1) Il faut mettre AS et pas IS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE OR REPLACE PROCEDURE 
    PR_EXTFIL AS
    Pourquoi ?

    J'ai jamais eu de problème avec la is .

  15. #15
    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
    J'ai execute le code tel quel chez moi sous toad (Create or replace ....).
    Aucune erreur de compilation.

  16. #16
    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
    C'était pas pour toi Garuda !!
    C'était pour voir si le EXECUTE IMMEDIATE marchait sur la base 8i de gusrom86

  17. #17
    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 McM
    Juste un mot : Attention, tu ne gères pas les champs NULL.

    Vu que t'es en 8, essaye jsute pour voir si ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE PROCEDURE P_TEST AS 
     var NUMBER;
    BEGIN
    EXECUTE IMMEDIATE 'SELECT 1 FROM DUAL' INTO var;
    DBMS_OUTPUT.PUT_LINE('Retour : ' || var);
    END;
    Ca compile ?
    eh non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PLS-00103: Encountered the symbol "IMMEDIATE" when expecting one of the following:
     
       := . ( @ % ;

  18. #18
    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
    IS est acceptée pour les fonctions/procédures, effectivement, mais à priori pas pour les vues.
    Je n'utilise que as (et toad également) par souci d'homogénéité.

  19. #19
    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
    C'est quoi ta version de base ? (gusrom86, pas garuda)

  20. #20
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Tu peux utiliser le dbms_sql
    http://download-uk.oracle.com/docs/c...6/dbms_sql.htm

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