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 :

execute immediate + create table


Sujet :

SQL Oracle

  1. #1
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut execute immediate + create table
    bonjour,

    Je suis sur une 9iR2.
    J'essaie péniblement de créer une table temporaire via une procédure ; quand je lance le script de création de la table, ça fonctionne ; quand je l'intègre dans la procédure, je compile, mais rien ne se passe ; pas de message d'erreur de Toad ...

    voilà en gros ma procédure

    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
    CREATE OR REPLACE procedure ma_procedure(...)
    IS
     
    ...
     
    BEGIN 
     
    EXECUTE IMMEDIATE ('
    create global temporary table ma_table
    on commit preserve rows
    as
    select .... from ... where ... group by ... ;');
     
    END ma_procedure;
    /


    Y a t'il une erreur dans la syntaxe que j'utilise ??

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    qu'est ce que ça donne dans sqlplus

  3. #3
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut
    en sqlplus, ca fonctionne ! LA table est générée avec les données.

    Je pense que c'est le execute immediate qui me plante ...

    Est'ce que mes quotes sont correctes ?

  4. #4
    Membre actif Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Points : 208
    Points
    208
    Par défaut
    tu n'as pas besoin de mettre le point virgule à la fin de l'instruction create table du execute immediate

  5. #5
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut
    en effet, bine vu. Ceci dit, ça ne change rien...

    j'ai fait au plus simple ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE IMMEDIATE ('create global temporary table ma_table on commit preserve rows as select sysdate from dual');
    ça ne marche pas .... mais j'ai (enfin) l 'erreur ... privilèges insuffisants...Bon, je croyais qu'avec un compte DBA cela serait suffisant...visiblement pas..que faut'il de particulier pour faire çà (sachant que je peux créer des tables 'normales' sans problèmes !

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    non, il te faut CREATE TABLE, voire CREATE ANY TABLE.

  7. #7
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut
    très fort .... j'aurais jamais pensé avoir besoin de çà ...

    bravo, t'as trouvé.

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    la raison est que DBA est un rôle, et que PLSQL a besoin de privilege directement attribués, et pas via un rôle. Nous avons tous passé par là

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/09/2014, 12h00
  2. execution requête CREATE TABLE ne pas afficher la table
    Par pancratee dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/12/2009, 11h53
  3. Execute immediate truncate table
    Par Milo59000 dans le forum SQL
    Réponses: 5
    Dernier message: 08/09/2008, 18h43
  4. probleme de syntaxe execute immediate create user
    Par lokazouzou dans le forum Oracle
    Réponses: 1
    Dernier message: 04/02/2008, 17h43
  5. execute immediate + DROP TABLE
    Par greg75 dans le forum SQL
    Réponses: 8
    Dernier message: 18/09/2007, 17h29

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