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 :

Alter table paramétré


Sujet :

PL/SQL Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Par défaut Alter table paramétré
    Bonjour,
    Tout d'abord merci à ceux qui auront la gentillesse de se pencher sur mon problème et d'éventuellement me donner des éléments de réponse.

    Le problème est le suivant : Je cherche via un script PL-SQL sous le client Oracle 9.2 à tester l'existence d'une colonne et dans le cas où elle n'existe pas, la créer. Le nom de la colonne est donc paramétré et c'est ceci qui pose problème. "Invalide identifier".
    Voici le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 1
    	       INTO v_count
    	  FROM USER_TAB_COLUMNS
    	  WHERE table_name = 'TMP_GLB_EXTRACT_CAP'
    	  AND column_name = v_trimestre ;
     
    	  EXCEPTION
    	  WHEN NO_DATA_FOUND THEN
    	  v_str := 'ALTER TABLE TMP_GLB_EXTRACT_CAP ADD ' || v_trimestre || ' NUMBER(18,2)' ;
    	  EXECUTE IMMEDIATE v_str ;
    C'est apparament la concaténation avec la variable 'v_trimestre' qui pose problème puisque j'ai testé en mettant une chaîne de caractère (avec un nom de colonne 'en dur') complète, sans concaténation et cela fonctionne.

    Merci pour votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Affiche v_str avant de l'exécuter tu comprendras peut-être ce qui ce passe.
    Ta sysntaxe me semble correcte.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Par défaut
    Merci pour ton élément de réponse mais en affichant la valeur contenue dans 'v_str' j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE TMP_GLB_EXTRACT_CAP ADD 2008T2 NUMBER(18,2)
    Donc ma variable est bien renseigné.

    Est qu'il n'y a pas une utilisation a faire du genre "byval", "byref" ?

  4. #4
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Un nom de colonne peut commencer par un chiffre ?

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par jeanjean0403 Voir le message
    Merci pour ton élément de réponse mais en affichant la valeur contenue dans 'v_str' j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE TMP_GLB_EXTRACT_CAP ADD 2008T2 NUMBER(18,2)
    Donc ma variable est bien renseigné.
    Et as-tu eu la curiosité de lancer cette commande sous SQL*Plus ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Par défaut
    problème résolu, c'était bien le fait qu'un nom de colonne ne puisse pas commencer par un chiffre (ni un '_' d'ailleurs)

    Un grand merci à SheikYerbouti et à tous ceux qui m'ont donner des éléments de réponse

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

Discussions similaires

  1. paramètre comme nom de table dans la commande alter table
    Par zebrette dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/11/2010, 16h50
  2. [débutant] conseils sur contraintes et alter table
    Par maysa dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 26/05/2004, 09h03
  3. [Delphi 2] Alter Table
    Par Form_Load dans le forum Bases de données
    Réponses: 11
    Dernier message: 23/04/2004, 14h26
  4. Probleme 'ALTER TABLE' et 'FOREIGN KEY'
    Par maahta dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/09/2003, 14h25
  5. Alter table qui ne passe...
    Par Gential dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/06/2003, 17h48

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