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 :

TRUNCATE SUCCESSIF sur plusieurs tables


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Par défaut TRUNCATE SUCCESSIF sur plusieurs tables
    Bonjour,
    je voudrais supprimer d'un coup plusieurs tables, donc je crée une procédure stocckée:
    create or replace
    PROCEDURE supall AS
    BEGIN
    TRUNCATE TABLE table1;
    TRUNCATE TABLE table2;
    TRUNCATE TABLE table3;
    TRUNCATE TABLE table4;
    TRUNCATE TABLE table5;
    TRUNCATE TABLE table 6;
    TRUNCATE TABLtable7
    END supall ;
    le script est compilé avec l'erreur suivante:
    Erreur(3,10): PLS-00103: Symbole "TABLE" rencontré à la place d'un des symboles suivants : := . ( @ % ;

    Mais si je fais le TRUNCATE table par table il ya aucun problème ...

    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    TRUNCATE TABLtable7

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Truncate c'est du DDL donc Sql Dynamique.

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Par défaut
    non c'est une erreur de ma part,

    je fait aussi
    truncate table table7;
    end supall;

    pardon

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Par défaut
    en fait, j'utilise sqldevelopper,
    je ne comprend pas ou mettre le sql dynamique

    Merci pour votre réponse

  6. #6
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Begin
      execute immediate 'truncate table table1';
      execute immediate 'truncate table table2';
    End;
    /

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Par défaut
    Bonjour,

    Oui merci le code marche parfaitement, mais lorsque j'essaie de l'encapsuler dans une procédure stockée ça me génère une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    create or replace PROCEDURE proc1 AS 
    BEGIN
      DECLARE requete1 VARCHAR2(300);
      BEGIN
        requete1:='TRUNCATE TABLE tab1';
        EXECUTE IMMEDIATE requete1;
      END;
    END proc1 ;
    /
    Résultat la procédure est bien la mais lorsque je l'exécute j'ai une erreur:
    programme sélectionné n'est pas dans un état valide pour être exécuté, recompilez le programme et réessayez...

    Donc ma question : est-il possible d'encapsuler un script avec EXECUTE IMMEDIATE dans une procédure ou autre solution possible.

    Merci pour vos réponses.

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

Discussions similaires

  1. TRUNCATE sur plusieurs tables
    Par TwAzO dans le forum Requêtes
    Réponses: 9
    Dernier message: 23/06/2008, 18h33
  2. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  3. order by sur plusieurs tables
    Par Mad_Max dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/12/2003, 12h17
  4. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50
  5. 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

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