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

PL/SQL Oracle Discussion :

Execute immediate alter table missing right parenthesis


Sujet :

PL/SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Execute immediate alter table missing right parenthesis
    Bonjour à tous,

    Voilà mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DECLARE
      CURSOR tb IS (SELECT table_name  FROM user_tables WHERE INSTR(table_name, 'TMPOBJECT_') != 0);
    BEGIN
      FOR tab IN tb LOOP    
       EXECUTE IMMEDIATE 'ALTER TABLE tab modify SNAME NVARCHAR2(2000 CHAR);';
      END LOOP;
    END;
    Rapport d'erreur :
    ORA-00907: parenthèse de droite absente
    ORA-06512: à ligne 5
    00907. 00000 - "missing right parenthesis"
    *Cause:
    *Action:

    Merci de votre aide rapide

  2. #2
    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
    http://docs.oracle.com/cd/B28359_01/....htm#CNCPT1824
    NVARCHAR2 n'a pas de "Length Semantics"
    => NVARCHAR2(2000)
    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. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai donc changé mais voilà une autre erreur. Pourtant la requete du cursor est correcte et donne bien le nom des tables concernée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE
      CURSOR tb IS (SELECT table_name  FROM user_tables WHERE INSTR(table_name, 'TMPOBJECT_') != 0);
    BEGIN
      FOR tab IN tb 
      LOOP    
        EXECUTE IMMEDIATE ('ALTER TABLE tab MODIFY SNAME NVARCHAR2(2000)');
      END LOOP;
    END;
    ORA-00942: Table ou vue inexistante
    ORA-06512: à ligne 6
    00942. 00000 - "table or view does not exist"
    *Cause:
    *Action:

  4. #4
    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
    Tu exécutes tout le temps le même code : "ALTER TABLE tab MODIFY SNAME NVARCHAR2(2000)"
    Voici le tuto sur le Execute immediate :
    http://sheikyerbouti.developpez.com/execute_immediate/
    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. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour l'aide, l'erreur venant d'un oubli d'appel sur la colonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE
      CURSOR tb IS (SELECT table_name  FROM user_tables WHERE INSTR(table_name, 'TMPOBJECT_') != 0);
    BEGIN
      FOR tab IN tb 
      LOOP    
        EXECUTE IMMEDIATE 'ALTER TABLE ' || tab.table_name || ' MODIFY SNAME NVARCHAR2(2000)';
      END LOOP;
    END;

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

Discussions similaires

  1. Decode, sign : Missing right parenthesis
    Par Irianne dans le forum SQL
    Réponses: 11
    Dernier message: 12/11/2008, 13h50
  2. Execute immediate truncate table
    Par Milo59000 dans le forum SQL
    Réponses: 5
    Dernier message: 08/09/2008, 17h43
  3. execute immediate + DROP TABLE
    Par greg75 dans le forum SQL
    Réponses: 8
    Dernier message: 18/09/2007, 16h29
  4. execute immediate + create table
    Par olivanto dans le forum SQL
    Réponses: 7
    Dernier message: 03/05/2007, 15h41
  5. Réponses: 10
    Dernier message: 30/10/2006, 14h44

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