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

DB2 Discussion :

ALTER SEQUENCE RESTART WITH.


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 42
    Par défaut ALTER SEQUENCE RESTART WITH.
    Salut,
    je travaille sur Z/OS DB2 V8, avec l'AGL PACBASE.

    Je souhaite effectuer une migration sur des données pour intégrer une gestion de SEQUENCE DB2.

    - J'ai créé une séquence.
    - Je possède une table m'indiquant le dernier identifiant affecté
    - Je souhaiterais modifier ma SEQUENCE pour débuter à partir de ce numéro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EXQ ALTER SEQUENCE Nomseq         
        RESTART WITH :DB00-NUDID
    Je n'arrive pas à variabiliser la valeur aprés le RESTART WITH, il n'accepte apparemment que un <INTEGER> ou un <DECIMAL>. Est ce que certains d'entre vous on déjà rencontré ce problème ?

    Merci de votre aide.

  2. #2
    Membre émérite Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Par défaut
    Comment est déclaré ta host-variable DB00-NUDID ?

    Peux-tu mettre le code de ton CREATE SEQUENCE ?

    .

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 42
    Par défaut
    Voici pour la création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE SEQUENCE Nomseq AS DECIMAL (8,00)          
     START WITH 1                                     
     INCREMENT BY 1                                   
     MAXVALUE 99999999                                
     NO CYCLE                                         
     NO CACHE
    Ensuite je récupère dans une table la colonne NUDID en S9(9) COMP.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    10            DB00-NUDID  PICTURE  S9(9)  
                  BINARY.
    puis j'essaye de passer l'alter comme décrit plus haut.

    le message après compil est clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSNH104I DSNHPARS  ILLEGAL SYMBOL ":". SOME SYMBOLS THAT MIGHT BE LEGAL ARE : <DECIMAL> <INTEGER>
    Merci d'avance.

  4. #4
    Membre émérite Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Par défaut
    Ta host-variable est bien en Working?

    .

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 42
    Par défaut
    oui, c'est le segment de réception de ma donnée DB2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    WORKING-STORAGE SECTION.                        
    BEGIN DB2          DB00                         
    01                 DB00.                        
     
         10            DB00-CDTAB  PICTURE  X(4).   
         10            DB00-ZB110  PICTURE  X(110). 
         10            DB00-NUDID  PICTURE  S9(9)   
                       BINARY.

    j'ai essayé avec une zone spécifique, même combat !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    05              WW00-ZN009       
                  PICTURE S9(9)      
                    BINARY.

  6. #6
    Membre émérite Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Par défaut
    Je ne vois pas pour quelle raison ton host-variable n'est pas prise en compte par contre je m'interroge sur la pertinence de cette variable.

    En effet, d'après ce que je comprend de la doc, la numeric-constant qui suit le WITH est la valeur à laquelle est redémarrer la séquence, je ne pense pas que la séquence redémarre au niveau de la valeur de DB00-NUDID que tu lui indiques. (Que ce passe-t-il si tuple sur cette colonne ?)

    Citation Envoyé par DB2 UDB for z/OS v8
    WITH numeric-constant :
    Specifies the value at which to restart the sequence. The value can be any positive or negative value that could be assigned to the a column of the data type that is associated with the sequence without non-zero digits existing to the right of the decimal point.
    Je passe la main , tiens nous au courant
    .

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    On ne peut pas utiliser de variables directement dans les instructions CREATE SEQUENCE et ALTER SEQUENCE, seules sont supportées des constantes numériques.

    Passer par SQL dynamique pour contourner cette contrainte.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    01 STMT.
        05 FILLER     PIC X(35) 
        VALUE "ALTER SEQUENCE Nomseq RESTART WITH ".
        05 RSTRT_VAL  PIC X(8).
     
        MOVE DB00-NUDID TO RSTRT_VAL.
     
        EXQ EXECUTE IMMEDIATE :STMT.

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

Discussions similaires

  1. Firebird Embedded et ALTER SEQUENCE
    Par evarisnea dans le forum Firebird
    Réponses: 2
    Dernier message: 17/06/2008, 22h16
  2. alter sequence increment by (select..) nombre non valid!?
    Par scofield dans le forum Sql*Plus
    Réponses: 24
    Dernier message: 13/09/2007, 01h40
  3. Réponses: 10
    Dernier message: 30/10/2006, 14h44
  4. alter sequence
    Par marti dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/08/2005, 07h53
  5. Suite : alter sequence
    Par marti dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/08/2005, 06h43

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