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 :

Problème avec alter sequence en PL/SQL


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut Problème avec alter sequence en PL/SQL
    Bonjour,
    j'essaie de mettre à jour à jour une sequence oracle avec la valeur d'une variable déclarée dans le meme script SQL (je lance le script en ligne de commande).

    script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    declare
    valeurDeDécalage CONSTANT number := 30 ;
    begin
    alter sequence gtp_news_item_seq INCREMENT BY valeurDeDécalage ;
    SELECT gtp_news_item_seq.nextval from dual;
    alter sequence gtp_news_item_seq INCREMENT BY 1;
    select gtp_news_item_seq.nextval from dual; 
    end;
    /
    j'ai une erreur comme quoi PLSQL ne reconnait pas le 'ALTER'

    merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Merci de citer les messages d'erreur in-extenso, le jeu des devinettes étant assez désagréables.

    Vous essayez de passez une commande DDL dans du PL/SQL, ce qu'il n'accepte pas.
    Dernière modification par Waldar ; 21/06/2010 à 17h07. Motif: Sujet déplacé + citation devenue inutile

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Deux erreurs.

    Pour vos ordres DDL, il faut utiliser utiliser la commande EXECUTE IMMEDIATE.
    Pour vos select, il faut placer le résultat dans une variable :
    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
    declare
        valeurDeDécalage CONSTANT number := 30 ;
        vn_gtp_news_item_seq      integer;
     
    begin
        EXECUTE IMMEDIATE 'ALTER SEQUENCE GTP_NEWS_ITEM_SEQ INCREMENT BY ' || to_char(valeurDeDécalage);
        SELECT gtp_news_item_seq.NEXTVAL INTO vn_gtp_news_item_seq FROM dual;
        dbms_output.put_line('Valeur séquence 1 : ' || to_char(vn_gtp_news_item_seq));
     
        EXECUTE IMMEDIATE 'ALTER SEQUENCE GTP_NEWS_ITEM_SEQ INCREMENT BY 1';
        SELECT gtp_news_item_seq.NEXTVAL INTO vn_gtp_news_item_seq FROM dual; 
        dbms_output.put_line('Valeur séquence 2 : ' || to_char(vn_gtp_news_item_seq));
     
    end;
    /

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut
    J'ai appliqué les modifications suggérées et voila la trace d'execution :

    valeurDeDécalage CONSTANT number := 30 ;
    *
    ERREUR a la ligne 2 :
    ORA-06550: Ligne 2, colonne 14 :
    PLS-00103: Symbole "?" rencontre a la place d'un des symboles suivants :
    constant exception <identificateur>
    <identificateur entre guillemets> table LONG_ double ref char
    time timestamp interval date binary national character nchar
    Ce que j'essaie de faire c'est de caler la valeur d'une séquence avec la valeur d'une constante.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Oui tient, je n'ai pas attention à l'attribution de la constante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    declare
        valeurDeDecalage CONSTANT number DEFAULT 30;
        vn_gtp_news_item_seq      integer;
    begin
        EXECUTE IMMEDIATE 'ALTER SEQUENCE GTP_NEWS_ITEM_SEQ INCREMENT BY ' || to_char(valeurDeDecalage);
        SELECT gtp_news_item_seq.NEXTVAL INTO vn_gtp_news_item_seq FROM dual;
        dbms_output.put_line('Valeur séquence 1 : ' || to_char(vn_gtp_news_item_seq));
     
        EXECUTE IMMEDIATE 'ALTER SEQUENCE GTP_NEWS_ITEM_SEQ INCREMENT BY 1';
        SELECT gtp_news_item_seq.NEXTVAL INTO vn_gtp_news_item_seq FROM dual; 
        dbms_output.put_line('Valeur séquence 2 : ' || to_char(vn_gtp_news_item_seq));
     
    end;
    /

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut
    merci pour la réponse rapide, en fait j'ai juste changé le nom de la constante en 'valeur' au lieu de 'valeurDeDécalage' je crois que c'est le (é) qui posait probleme.

Discussions similaires

  1. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 10h11
  2. [CR11] Problème avec un champ d'expression SQL
    Par Benoit30 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 30/05/2006, 16h22
  3. Problème avec l'argument DISTINCT en SQL
    Par Jeankiki dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/04/2006, 12h27
  4. [SQL-Server] Problème avec odbc et ma connexion SQL Server
    Par vodevil dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/12/2005, 10h04
  5. problème avec alter
    Par devalender dans le forum SQL
    Réponses: 7
    Dernier message: 08/07/2004, 22h31

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