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 :

Oracle 8 : Proc. stock. + DDL


Sujet :

Oracle

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut Oracle 8 : Proc. stock. + DDL
    Bonjour,

    Peut-on faire des DDL (ex : CREATE TABLE AS SELECT ... ) dans une procédure stockée ?

    Merci.

  2. #2
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Oui, avec la commande execute immediate tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate 'create matable...';
    Il existe peux être d'autre moyen de le faire, mais en voilà déjà un !
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Oui mais, si je luis fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    EXECUTE IMMEDIATE ('
    CREATE TABLE tab1
    AS
    SELECT *
      FROM tab2
    WHERE col1 = 'A'
        AND col2 = 'B'
    ');
    Ca ne lui plait pas :
    ERREUR Ó la ligne 61 :
    ORA-01756: une cha¯ne entre apostrophes ne se termine pas correctement

  4. #4
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    comme ça c'est pas mieux ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE IMMEDIATE 'CREATE TABLE tab1 AS SELECT * FROM tab2 WHERE col1 = ''A'' AND col2 = ''B''';
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Ma première tentative :
    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
     
    EXECUTE IMMEDIATE('
    CREATE TABLE tbl_marche_ase
       AS
       SELECT  COLECT, 
       	   UAGTHEM, 
       	   ANBU1, 
       	   NUBU1, 
       	   NNM1, 
       	   PERIODE1, 
       	   PART1, 
       	   SUBSTR(NNM1,3,2) AS PLAGE_NUM,
       	   FOUR, 
       	   UAU, 
       	   MTMINI AS MT_MINIMUM, 
       	   MTMAXI AS MT_MAXIMUM, 
       	   MTINIT AS MT_INITIAL, 
       	   MTAVE AS MT_AVENANT, 
       	   MTVARI AS MT_VARIATION, 
       	   TOT AS MT_TOTAL, 
       	   MTPART AS MT_NONREPARTI, 
       	   CREAL AS MT_LIQ_ANT, 
       	   MT AS MT_EXERCICE_EN_COURS, 
       	   CLIQ AS MT_LIQ_EN_COURS, 
       	   CMAN AS MT_MAN_EN_COURS, 
       	   DLIQ AS MT_DISPO_LIQ, 
       	   RESENG AS MT_RESTE_A_LIQ_SUR_EJ, 
       	   DLRE AS MT_DISPO_EJ, 
       	   DATMAN, 
       	   NMAND, 
       	   MANDARC, 
       	   OBJET, 
       	   LIEU, 
       	   OBS, 
       	   TYPMAR, 
       	   TYPERIOD, 
       	   VALIDITE, 
       	   NATMAR, 
       	   SECTBU, 
       	   CAO, 
       	   DATNOTI, 
       	   DATDEB, 
       	   DATEJLIM, 
       	   DATSOLDE, 
       	   DATEJ, 
       	   NUMENG, 
       	   LIGNE, 
       	   MILLESI, 
       	   DATECAO, 
       	   DATFINMA, 
       	   INTERFACE, 
       	   ARTICLE, 
       	   NNMIXTE, 
       	   TYPACHAT, 
       	   TXIM, 
       	   DLGP, 
       	   PROCDART, 
       	   NDB, 
       	   T2 	
         FROM  SAGA_MARCHE_AGR
        WHERE  COLECT = 'D'
          AND  ANBU1 = '07'
          AND  VALIDITE = 'V'
          AND  (UAGTHEM <> '34000' OR NUBU1 <> '01')
       )';
    ERREUR Ó la ligne 63 :
    ORA-00933: La commande SQL ne se termine pas correctement
    Après MAJ :

    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
     
    EXECUTE IMMEDIATE('
    CREATE TABLE tbl_marche_ase
       AS
       SELECT  COLECT, 
       	   UAGTHEM, 
       	   ANBU1, 
       	   NUBU1, 
       	   NNM1, 
       	   PERIODE1, 
       	   PART1, 
       	   SUBSTR(NNM1,3,2) AS PLAGE_NUM,
       	   FOUR, 
       	   UAU, 
       	   MTMINI AS MT_MINIMUM, 
       	   MTMAXI AS MT_MAXIMUM, 
       	   MTINIT AS MT_INITIAL, 
       	   MTAVE AS MT_AVENANT, 
       	   MTVARI AS MT_VARIATION, 
       	   TOT AS MT_TOTAL, 
       	   MTPART AS MT_NONREPARTI, 
       	   CREAL AS MT_LIQ_ANT, 
       	   MT AS MT_EXERCICE_EN_COURS, 
       	   CLIQ AS MT_LIQ_EN_COURS, 
       	   CMAN AS MT_MAN_EN_COURS, 
       	   DLIQ AS MT_DISPO_LIQ, 
       	   RESENG AS MT_RESTE_A_LIQ_SUR_EJ, 
       	   DLRE AS MT_DISPO_EJ, 
       	   DATMAN, 
       	   NMAND, 
       	   MANDARC, 
       	   OBJET, 
       	   LIEU, 
       	   OBS, 
       	   TYPMAR, 
       	   TYPERIOD, 
       	   VALIDITE, 
       	   NATMAR, 
       	   SECTBU, 
       	   CAO, 
       	   DATNOTI, 
       	   DATDEB, 
       	   DATEJLIM, 
       	   DATSOLDE, 
       	   DATEJ, 
       	   NUMENG, 
       	   LIGNE, 
       	   MILLESI, 
       	   DATECAO, 
       	   DATFINMA, 
       	   INTERFACE, 
       	   ARTICLE, 
       	   NNMIXTE, 
       	   TYPACHAT, 
       	   TXIM, 
       	   DLGP, 
       	   PROCDART, 
       	   NDB, 
       	   T2 	
         FROM  SAGA_MARCHE_AGR
        WHERE  COLECT = ''D''
          AND  ANBU1 = ''07''
          AND  VALIDITE = ''V''
          AND  (UAGTHEM <> ''34000'' OR NUBU1 <> ''01'')
       )';
    ERREUR Ó la ligne 59 :
    ORA-00933: La commande SQL ne se termine pas correctement

  6. #6
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Pourquoi mets tu () après execute immediate ?
    C'est peux être de là que viens le problème

    [edit]en plus tu ouvre la parenthèse en dehors des ' ' et tu la ferme dedans[/edit]
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  7. #7
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Merci !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel de proc stockée ORACLE renvoyant un curseur à partir de DELPHI
    Par orphee13 dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/09/2006, 14h05
  2. Réponses: 9
    Dernier message: 23/09/2006, 17h13
  3. [ORACLE]Paramètre d'une proc stock
    Par HexChit dans le forum SQL
    Réponses: 3
    Dernier message: 14/09/2006, 11h23
  4. Réponses: 9
    Dernier message: 14/10/2005, 18h32

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