+ All Categories

DOC_DB2

Date post: 27-Jun-2015
Category:
Upload: ykabach87
View: 650 times
Download: 4 times
Share this document with a friend
Popular Tags:
37
UNLOADV7 //*===================================================================== //ULOAD0 EXEC DSNUPROC,PARM='DB2D,UNLOADV7' //SYSOUT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DSN=PSUP2.JOIN.SYSP.TABLE, // SPACE=(TRK,(5,5),RLSE), // UNIT=PROD, // DISP=(,CATLG,DELETE) //SYSREC DD DSN=PSUP2.JOIN.UNLD.TABLE, // DISP=(,CATLG,DELETE), // DCB=(BLKSIZE=8192), // SPACE=(CYL,(90,90),RLSE), // UNIT=(PROD,3) //SYSIN DD * UNLOAD FROM TABLE DP000.DSGNAM WHEN (NO_TYPE_FICHIER = 'VSAM') //*===================================================================== Autorisation Requise : La MVS® Console operator - START DB2 SYSADM (Administrateur système) Toutes commandes sauf - START DB2 SYSCTRL toutes commandes sauf - START DB2
Transcript
Page 1: DOC_DB2

UNLOADV7

//*=====================================================================

//ULOAD0 EXEC DSNUPROC,PARM='DB2D,UNLOADV7'

//SYSOUT DD SYSOUT=*

//SYSTSPRT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSPUNCH DD DSN=PSUP2.JOIN.SYSP.TABLE,

// SPACE=(TRK,(5,5),RLSE),

// UNIT=PROD,

// DISP=(,CATLG,DELETE)

//SYSREC DD DSN=PSUP2.JOIN.UNLD.TABLE,

// DISP=(,CATLG,DELETE),

// DCB=(BLKSIZE=8192),

// SPACE=(CYL,(90,90),RLSE),

// UNIT=(PROD,3)

//SYSIN DD *

UNLOAD FROM TABLE DP000.DSGNAM

WHEN (NO_TYPE_FICHIER = 'VSAM')

//*=====================================================================

Autorisation Requise :

        La MVS® Console operator - START DB2

        SYSADM (Administrateur système) Toutes commandes sauf - START DB2

        SYSCTRL toutes commandes sauf - START DB2

        SYSOPR Toutes commandes sauf - REC BSDS,                                                      - START DATABASE,                                                      - STOP DATABASE

Page 2: DOC_DB2

        DBADM (Tout pouvoir sur une DB)

        DBCTRL Toutes les commandes pour la Database

        DBMAINT

L'utilitaire de réorganisation (REORG)  

Utilisez le Panel DB2I Utilities pour générer le JCL nécessaire pour soumettre l'utilitaire REORG .

Comme avec tous les utilitaires DB2, des cartes de contrôles permettent de spécifier les options du traitement particulier que vous voulez effectuer.

Cet utilitaire vous permet de réorganiser :

        Un Tablespace et tous ses Index associés.

        Une seule partition d'un Tablespace et les Index associés.

        Un Index ou une partition d'Index.

Les Phases d'Exécution du REORG :

Il y a quatre phases dans l'exécution d'un utilitaire REORG

        Phase 1 : UNLOAD : la phase d'UNLOAD copie les données du Tablespace dans un fichier séquentiel. Les lignes 'Droppées' sont éliminées et les lignes réallouées sont remises à leur place. Un tri des données déchargées est requis dans cette phase quand la clause SORTDATA est spécifiée et les données sont déchargées via un Tablespace Scan.

        Phase 2 : RELOAD : le fichier séquentiel créé par la phase d'UNLOAD est rechargé dans le Tablespace. Les entrées d'Index pour tous les Index définis sur la ou les tables sont aussi extraits à ce moment.

        Phase 3 : SORT : tri des enregistrements index en séquence de clé. Cette étape peut être sautée quand aucun Index, autre que l'index cluster explicite, n'existe pour chaque table.

        Phase 4 : BUILD : reconstruction des Index afin de refléter la nouvelle localisation des lignes.

Page 3: DOC_DB2

Secondary Authid List  

La liste 'secondary authid list' permet à un utilisateur unique d'être associé à plus de 245 identifiants d'autorisation lors d'une session DB2.

Dans le schéma des autorisations il y a 4 identifiants d'autorisation (authid) différents :

1.   PRIMARY AUTHID

2.   SECONDARY AUTHID

3.   CURRENT SQL AUTHID

4.   OWNER AUTHID

Selon la manière dont on accède DB2, soit en dynamique soit en statique, la détermination de l'authid qui est faite détermine quels sont les privilèges que vous avez vis a vis de DB2.

Généralités sur l'utilitaire LOAD  

Les données peuvent être chargées dans des Tables relationnelles en utilisant l'utilitaire LOAD. L'entrée du LOAD est toujours un fichier séquentiel.

Les données peuvent être chargées dans plus d'une TABLE tant que :

        Les Tables sont dans le même Tablespace.

        Les données à charger dans les deux Tables proviennent du même fichier. Un fichier en entrée de ce type aura généralement des dessins d'enregistrements multiples.

Vous pouvez demander à DB2 de valider les contraintes d'Intégrité Référentielle pendant le chargement des données. DB2 rejettera toute ligne transgressant les règles d'Intégrité Référentielle. Ceci vous laisse avec une ou des Tables valides au niveau IR à l'issue de l'exécution du LOAD.

Si vous choisissez de ne pas voir validées les contraintes d'intégrité référentielle pendant le LOAD, alors DB2 marquera le Tablespace avec la restriction CHECK PENDING.

Les données chargées sont traitées par toute procédure existante (edit, field, ou validation).

Page 4: DOC_DB2

Exemple de JCL :

DSNUTILB (Full Image Copy)

//JMETJCXX JOB DPME£,'JCT',CLASS=B,MSGCLASS=T, // NOTIFY=&SYSUID,REGION=0M //*=====================================================================//STADBUT EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(DB2D) -STO DATABASE (DPERO0D) SPACENAM(*) -STA DATABASE (DPERO0D) SPACENAM(*) ACCESS(UT) //*=====================================================================//* *** FULL IMAGE COPY DES TABLESPACES GXP *** */ //*=====================================================================//DBD2COPY EXEC PGM=DSNUTILB,PARM='DB2D,COPYGXP' //STEPLIB DD DISP=SHR,DSN=DB2610.SDSNLOAD //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=D //UTPRINT DD SYSOUT=* //REF1 DD DSN=DPERO.CIDA.SAUVGXP.DU040701,DISP=OLD//FILESAV1 DD DSN=DPERO.CIDA.GPPR1AF.DU040701, // DISP=(,CATLG,DELETE), // LABEL=2, // UNIT=3490,VOL=(,RETAIN,,,REF=*.REF1), // DCB=(RECFM=VB,LRECL=32760) //FILESAV2 DD DSN=DPERO.CIDA.GPPR1AV.DU040701, // DISP=(,CATLG,DELETE), // LABEL=3, // UNIT=3490,VOL=(,RETAIN,,,REF=*.REF1), // DCB=(RECFM=VB,LRECL=32760) //FILESAV3 DD DSN=DPERO.CIDA.GPPR1DI.DU040701, // DISP=(,CATLG,DELETE), // LABEL=4, // UNIT=3490,VOL=(,RETAIN,,,REF=*.REF1), // DCB=(RECFM=VB,LRECL=32760) //FILESAV4 DD DSN=DPERO.CIDA.GPPR1RP.DU040701, // DISP=(,CATLG,DELETE), // LABEL=5, // UNIT=3490,VOL=(,RETAIN,,,REF=*.REF1),// DCB=(RECFM=VB,LRECL=32760) //FILESAV5 DD DSN=DPERO.CIDA.GPPR1TG.DU040701,

Page 5: DOC_DB2

// DISP=(,CATLG,DELETE), // LABEL=6, // UNIT=3490,VOL=(,RETAIN,,,REF=*.REF1), // DCB=(RECFM=VB,LRECL=32760) //FILESAV6 DD DSN=DPERO.CIDA.GPPR1TS.DU040701, // DISP=(,CATLG,DELETE), // LABEL=7, // UNIT=3490,VOL=(,RETAIN,,,REF=*.REF1), // DCB=(RECFM=VB,LRECL=32760) //SYSUT1 DD UNIT=SYSDV,SPACE=(CYL,(60,30)) //SORTWK01 DD UNIT=SYSDV,SPACE=(CYL,(60,30)) //SORTWK02 DD UNIT=SYSDV,SPACE=(CYL,(60,30)) //SORTOUT DD UNIT=SYSDV,SPACE=(CYL,(60,30)) //SYSIN DD * COPY TABLESPACE DPERO0D.GPPR1AFS COPYDDN FILESAV1 FULL YES SHRLEVEL REFERENCECOPY TABLESPACE DPERO0D.GPPR1AVS COPYDDN FILESAV2 FULL YES SHRLEVEL REFERENCE COPY TABLESPACE DPERO0D.GPPR1DIS COPYDDN FILESAV3 FULL YES SHRLEVEL REFERENCE COPY TABLESPACE DPERO0D.GPPR1RPS COPYDDN FILESAV4 FULL YES SHRLEVEL REFERENCE COPY TABLESPACE DPERO0D.GPPR1TGS COPYDDN FILESAV5 FULL YES SHRLEVEL REFERENCE COPY TABLESPACE DPERO0D.GPPR1TSS COPYDDN FILESAV6 FULL YES SHRLEVEL REFERENCE //*=====================================================================//* DEMARRAGE D'UNE DATABASE ET DES TS + INDEX EN RW //*=====================================================================//STABLRW EXEC PGM=IKJEFT01,DYNAMNBR=20//SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(DB2D) -STA DATABASE (DPERO0D) SPACENAM(*) ACCESS(RW) //*=====================================================================//* ARRET DE L'UTILITAIRE SI EN ERREUR

Page 6: DOC_DB2

//*=====================================================================//TERMIN1 EXEC PGM=IKJEFT01,COND=ONLY //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(DB2D) -DISPLAY UTILITY(*) -TERM UTILITY(COPYGXP) //*=========================< FIN DE JOB

L'ordre ALTER  

L'ordre ALTER est utilisé pour modifier la définition d'un objet dans DB2.

Vous devez avoir l'autorisation pour utiliser l'ordre ALTER.

Vous pouvez faire un ALTER sur une table, un index, un storage group, une database ou un tablespace.

L'ordre ALTER TABLE ajoutera une nouvelle colonne à une table existante.

La nouvelle colonne sera la dernière colonne de la table et toutes les lignes existantes de la table contiendront la valeur 'null' ou un défaut approprié (dépendant du type de la colonne) dans la nouvelle colonne.

ALTER TABLE nom de la table ADD nom de la colonne type de la donnée

Exemple :

ALTER TABLE COMPTE_TAB    ADD DATE            DATE    NOT NULL WITH DEFAULT

Page 7: DOC_DB2

Qu'est-ce qui ne peut pas être modifié sur une Table ? :

        Les types de données de colonnes.

        Les longueurs de Colonnes.

        Les qualifieurs d'Attribut.

        L'ordre des Colonnes.

        La suppression d'une Colonne.

        Une EDITPROC.

        ALTER d'une FIELDPROC sur une Colonne.

La jointureLa Jointure permet de combiner des informations qui viennent de plusieurs tables différentes.

Cette fonctionnalité permet de retrouver des informations de plusieurs tables en utilisant des

Page 8: DOC_DB2

champs communs entre ces différentes tables.

Lorsque l'on fait une Jointure entre des tables qui ont des noms identiques de colonnes, les noms en double doivent être préfixés par le nom de table auxquels ils appartiennent ou un nom de corrélation. des tables peuvent également être jointes sur elles mêmes.

Exemple : Donner une liste des noms, noms de cours, temps et jour de cours conceptuellement, ceci se fait de la manière suivante :

Pour chaque ligne retrouvée de la table TINSTRUC , la table TCOURS est parcourue (scan) pour trouver la ou les lignes de TCOURS pour lesquelles la valeur de la colonne INSTRUC-COURS correspond avec la valeur de la colonne NUMERO INSTRUC de la table TCOURS. Quand il y à correspondance, les champs NOM-COURS, HEURE-COURS, et JOUR COURS de la ligne sont sélectionnés pour la table résultat.

DSNTIAUL

//JMETJC01 JOB (ACCT£),'JCT 02',REGION=0M,CLASS=A, // MSGCLASS=T,NOTIFY=DPME2,RESTART=* //*==========================================================

Page 9: DOC_DB2

=========== //DELXX001 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE DPME2.PS.GCGPOS //*===================================================================== //DSNTI001 EXEC PGM=IKJEFT01 //STEPLIB DD DSN=DB2610.SDSNLOAD,DISP=SHR //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSREC00 DD DISP=(,CATLG,DELETE),SPACE=(CYL,(5,1),RLSE), // UNIT=3390,VOL=SER=B80WKT, // DSN=DPME2.PS.GCGPOS //SYSPUNCH DD DISP=OLD, //* ECRITURE DANS PDS// DSN=DPME2.PO.SYSPUNCH(GCGPOS) //SYSTSIN DD * DSN SYSTEM(DB2D) RUN PROGRAM(DSNTIAUL) PLAN(DSNTIB61) PARMS('SQL') - LIB('DB2D.RUNLIB.LOAD') //SYSIN DD * SELECT * FROM VA000.GCGPOS; //*=====================================================================

 Les IBM® Services Aids

 

IBM® fournit 4 Utilitaires MVS® séparés qui prennent en compte DB2 et qui, par conséquent, peuvent effectuer diverses fonctions sur les TABLES. Ces 4 Utilitaires sont :

        DSN1COPY : peut être utilisé pour manipuler les fichiers VSAM LDS supportant les Tablespaces DB2 et :

o       Créer une copie de back-up.

o       Déclencher une édition pour toutes, ou une série de pages DB2.

o       Vérifier la validité de toutes les Pages (validity check).

o       Traduire les ID des objets DB2.

Page 10: DOC_DB2

        DSN1PRNT : permet d'éditer des Pages d'un Tablespace ou d'un Index Space de plusieurs manières :

o       Toutes les Pages ou une série de Pages.

o       Seulement les Pages qui contiennent une valeur spécifique.

o       Edition dump hexadécimal ou formaté.

        DSN1LOGP : peut éditer un rapport détaillé ou résumé des enregistrements de la Log DB2, qui sont utiles en cas de restauration de database.

        DSN1CHKR : analyse un tablespace au niveau de la cohérence : liens détruits, chaînages coupés, enregistrements isolés. Il peut aussi s'appliquer aux tablespaces de la Directory et du Catalogue DB2.

L'ordre DROP 

L'ordre DROP est utilisé pour supprimer un objet dans DB2.

Vous devez avoir l'autorisation pour exécuter un ordre DROP.

On peut faire un drop sur une table, un index, une vue (view), un synonyme, un storage group, une database, ou un tablespace.

DROP le type d'objet à supprimer, le nom de l'objet

Exemple :

DROP INDEX INDEX1; DROP VIEW VIEW1; DROP SYNONYM ACCOUNTS50_100; DROP TABLE TABLE1; DROP TABLESPACE PLATDB.TSPACE1; DROP DATABASE PLATDB; DROP STORGROUP STORGROUP1;

L'ordre GRANT

L'ordre GRANT est utilisé pour établir le contrôle d'accès aux objet DB2.

Quand on passe l'ordre GRANT, on spécifie le privilège (sur un type d'opération) que l'on accorde à un autre utilisateur.  

GRANT opération ON type d'objet nom de l'objet                               TO identification de l'utilisateur

Page 11: DOC_DB2

Pour le Distributed Data Facility (DDF), les privilèges doivent êtres 'granted' dans le sous-système spécifique pour lesquels ils s'appliquent (i.e. la sécurité ne peut être gérée à distance)

Exemple :

GRANT SELECT ON TABLE TETUD               TO GORDON

Syntaxe de l'ordre GRANT :

Le langage de manipulation des données - DML

(Data Manipulation Language)

SQL possède 4 ordres qui permettent la manipulation de données.

        Pour interroger les données : SELECT

        Pour modifier les données : INSERT / UPDATE / DELETE

L'ordre COMMENT ON  

L'ordre COMMENT ON est utilisé pour ajouter un commentaire à la description d'une table, d'une vue, ou d'une colonne dans les tables du catalogue DB2.

Vous devez avoir l'autorisation spécifique pour utiliser l'ordre COMMENT ON.

COMMENT ON type de l'objet, nom de l'objet                      IS 'texte commentaire entre quotes'

Ce commentaire permet de renseigner la colonne REMARKS en VARCHAR (254) des tables du Catalogue DB2 :

        SYSIBM.SYSCOLUMNS

        SYSIBM.SYSTABLES

Exemple :

Pour la documentation d'une TABLE :

COMMENT ON TABLE USERX.TABLE1 IS 'CECI EST LA VERSION 1 DE LA TABLE COMPTE'

Pour la documentation d'une COLONNE :

COMMENT ON COLUMN TABLE1.NO_COMPTE IS 'NUMERO DE COMPTE - DOIT ETRE UNIQUE'

Pour la documentation de COLONNE multiple :

Page 12: DOC_DB2

COMMENT ON USERX.TABLE1 (NAME IS 'NOM COMPTE - VOIR LIVRE', SOLDE IS 'SOLDE $999999999.99')

Les utilitaires de Backup et de Recovry 

Le Backup et le Recovery de DB2 vous permettent de restaurer des tablespaces, des partitions, ou des groupes de pages. Ceci est basé sur :

        Le LOGGING : Toutes les modifications sur les pages de données sont gardées sur la log de DB2.

        Les IMAGE COPIES : Deux utilitaires donnent la possibilité de créer des image copies de tablespaces.

        L'Utilitaire de Restauration (RECOVERY) : L'utilitaire est utilisé pour recréer un tablespace depuis une image copy et des enregistrements log.

Le langage de définition des données - DDL

Le Langage de Définition de Données de SQL est utilisé pour l'administration de la database. Ces commandes vous permettent de définir, modifier et supprimer des objets tels que des tables, index et vues (il y en à bien d'autres).

Ces fonctions d'administration de la database peuvent se faire dynamiquement lorsque DB2 est actif.

Les ordres DDL sont :

        CREATE

        ALTER

        DROP

        COMMENT ON

Objet CREATE ALTER DROPStorgroup O O ODatabase O O O

TableSpace O O OTable O O OIndex O O OVue O N O

Synonyme O N OAlias O N O

Page 13: DOC_DB2

Archive Log

La commande -ARCHIVE LOG permet de déclencher manuellement l'archivage :

        Au changement d'équipe à l'exploitation.

        Suite à un incident pendant l'archivage automatique.

        Pour pouvoir accéder à la LOG Active.

Les Paramètres :

        MODE (QUIESCE) - L'archivage est déclenché après que toute activité de mise à jour est atteint un point de synchronisation (COMMIT).

        TIME (nnn) de 1 à 999 secondes pour spécifier le temps d'attente maximum afin que le QUIESCT s'exécute (pas d'archivage si dépassé).

        WAIT (no) l'opération d'archive démarre et le contrôle est rendu à l'opérateur qui peut passer d'autres commandes.

        WAIT (yes) idem, mais ces commandes seront en attente d'exécution jusqu'à la fin de l'archivage.

La table SYSIBM.SYSUTIL de la directory

 

 

 

L'utilité de cette ligne dans la TABLE SYSUTIL est double :

        Elle évite que d'autres utilitaires ne s'exécutent en même temps sur le même objet DB2,

        Elle est mise à jour aux points de COMMIT et de STOP, fournissant donc des informations si l'utilitaire doit être relancé.

Cette Table étant une Table de la Directory et non une table du Catalogue, on ne peut y faire référence par SQL.

Page 14: DOC_DB2

Pour interroger la table SYSUTIL, on doit utiliser la fonction Utilitaire DISPLAY, ou la commande -DISPLAY UTILITY.

Pour supprimer une ligne, on doit utiliser la fonction utilitaire TERMINATE, ou la commande -TERM UTILITY

Le SELECT de base

L'obtention de données en SQL se fait par l'intermédiaire de l'ordre SELECT. L'ordre SELECT de base est constitué des clauses principales suivantes :

        SELECT - indique les données appelées par leur nom de colonne que l'on désire obtenir

        FROM - donne le nom de la vue ou de la table ou se trouvent les données en question

        INTO - indique à DB2 ou il doit mettre les données qu'il aura trouvé

        WHERE - condition de recherche qui doit être remplie pour les lignes que l'on cherche (Optionnel)

        La clause INTO n'est utilisée que lorsque le SELECT est inséré dans un programme.

Display Thread

Abréviation : -DIS THD

Ce DISPLAY permet de visualiser l'état des connexions avec DB2 à un instant T.

2 types de DISPLAY THREAD sont possibles :

        Type (ACTIVE) qui est l'option par défaut qui permet de visualiser les THREADS actif à un instant T.

        Type (INDOUBT) permet de visualiser uniquement les THREADS qui sont dans un état inconsistant.

        Type (*) permet de visualiser l'ensemble des THREADS même ceux qui ne sont pas actifs à cet instant mais qui sont définis (c'est le cas des THREADS associés à CICS et IMS).

Il fait apparaître diverses notions :

Page 15: DOC_DB2

        Name : le nom de connexion égal au USERID TSO si THREAD TSO, égal au nom du CICS ou de l'IMS.

        ST : le Statut du THREAD

o       'N' signifie en cours de signature

o       'T' THREAD établi

o      

        A : '*' si le THREAD est actif sinon à blanc.

        PNAME : nom du plan utilisé

        AUTHID : l'AUTHID de la personne signée.

Il est également possible de visualiser l'état des connections sur un site distant en précisant, soit le paramètre LOCATION, soit le LUWID.

Display du statut d'une database

Exemple : -DISPLAY DATABASE(*) SPACE(*) RESTRICT

C'est le message par défaut de DISPLAY DATABASE quand "USE" ou 'LOCKS" n'est pas spécifié.

Les colonnes de ce message sont :

        NAME - Les noms des TABLESPACES et/ou INDEX SPACES dans la DATABASE.

        TYPE - "TS' pour les TABLESPACES et "IX' pour les INDEX SPACE.

        STATUS - Statut courant du TABLESPACE et/ou des INDEX SPACE. Il peut avoir une des valeurs suivantes :

o       RW - Accès en Read/Write permis.

o       RO - Accès en Read Only permis.

o       STOP - Le space est à l'arrêt.

o       UT - Accès d'un Utilitaire seul est permis.

Page 16: DOC_DB2

        PHYERRLO - Une valeur hexadécimale indiquant le plus petit numéro de page sur laquelle une 'error range' a été détectée par DB2.

        PHYERRHI - Une valeur en hexadécimal indiquant le plus grand numéro de page sur laquelle une 'error range' a été détectée par DB2.

        CATALOG - Nom du Catalogue ICF où les fichiers VSAM qui ont une "error range' sont catalogués. A blanc si il n'y a pas d'error range détectée.

        PIECE - Si les fichiers VSAM sur lesquels il y a une error range sont associés à une TABLESPACE ou INDEX SPACE partitionné, cette colonne sera égale au numéro de la partition, plus un.

Le group-by

Pour diviser les lignes d'une table en groupe correspondant en valeur sur une ou plusieurs colonnes, utilisez la clause GROUP BY.

SELECT nom de colonne FROM nom de table GROUP BY spécification des colonnes

L'ordre CREATE

L'ordre CREATE est utilisé pour créer un objet dans DB2.

Vous devez avoir l'autorisation de création de ce type d'objet pour pouvoir exécuter l'ordre CREATE.

On peut créer une table, un index, une vue (view), un synonyme, un storage group, une database, ou un tablespace.

CREATE  le type d'objet le nom de l'objet à créer (nom de colonne 1 type de la donnée-1, nom de colonne 2 type de la donnée-2 NOT NULL, nom de colonne 3 type de la donnée-3 ...

CREATE TABLE NCOMPTE-TAB

Page 17: DOC_DB2

(TYPE CHAR(l), SOLDE DECIMAL(9,2) NOT NULL WITH DEFAULT, NAME VARCHAR(35) NOT NULL) IN PLATDB.TSPACE1

CREATE TABLE SAMPLE TAB

(FIRSTNME CHAR(20) NOT NULL, LSTNME CHAR(20) NOT NULL, EMP-NO CHAR(5) NOT NULL UNIQUE, PRIMARY KEY (EMP-NO) IN DSN8D23A.DSN823B

CREATE TABLE SAMPLE-TAB2

(CLASS_NO DEC(4) NOT NULL, LOC-BLDG CHAR(4) NOT NULL, LOC-ROOM CHAR(2) NOT NULL, SCHED-TIME CHAR(5) NOT NULL, CLASS-DESC CHAR(25) NOT NULL, UNIQUE (LOC-BLDG,LOC_ROOM,SCHED-TIME), PRIMARY KEY (CLASS_NO) IN DSN8D23A.DSN823B

Liste des Abends SQL

SQL Abend+000 : Execution réussie

-007: Caractère interdit (ordre SQL). -010 : String non terminé (ordre SQL). +012 : Colonne non trouvée dans le from (ordre SQL). -029 : Clause "INTO" manquante (ordre SQL). -060 : Type invalide dans un ordre SQL. -084 : Ordre SQL non répertorié. +098 : Le résultat est une semi-colonne (ordre SQL). 

+100 : Lignes non trouvées (ordre SQL). -101 : Ordre SQL trop long ou trop complexe. -102 : Chaîne littérale trop longue (ordre SQL). -103 : Littéral numérique invalide dans un ordre SQL. -104 : Symbole invalide dans un ordre SQL. -105 : Token invalide dans un ordre SQL. -107 : Nom trop long (ordre SQL). -109 : Clause interdite dans un ordre SQL. -110 : Littéral hexadécimal invalide dans un ordre SQL. +110 : Message d'information. -111 : La fonction de la colonne n'inclue pas son nom (ordre SQL). +111 : Option "SUBPAGE" invalide (ordre SQL). -112 : Opérande de fonction invalide (ordre SQL). -113 : Caractère invalide (ordre SQL). -114 : La location ne pointe pas le serveur courant (UNIX).

Page 18: DOC_DB2

-115 : Problème avec l'opérateur de comparaison (ordre SQL). -117 : Nombre d'objets différent du nombre de colonnes (ordre SQL). +117 : Nombre de valeurs insérées différent du nombre de colonnes de la table (ordre SQL). -118 : La table ou la vue de l'insert est déjà présente dans le from (ordre SQL). -119 : Colonne non incluse au groupe par la clause (ordre SQL). -120 : La clause "WHERE ON SET" contient une fonction de colonne (ordre SQL). -121 : Nom de colonne identifié plus d'une fois (ordre SQL). -122 : Colonne incluse dans le "SELECT" mais pas dans le "GROUP BY" (ordre SQL). -125 : La clause n'identifie pas une colonne du résultat (ordre SQL). -126 : Deux clauses incompatibles (ordre SQL). -127 : "DISTINCT" est spécifié plus d'une fois dans un "SUBSELECT" (ordre SQL). -128 : Valeur "NULL" invalide (ordre SQL). -129 : Trop de noms de tables (ordre SQL). -131 : Types de données incompatibles (ordre SQL). -132 : La deuxième opérande n'est pas une chaîne (ordre SQL). -133 : Problème de corrélation de fonctions (ordre SQL). -134 : Usage incorrect d'un nom long de colonne (ordre SQL). -136 : Longueur de clé de tri supèrieure à 4000 bytes (ordre SQL). -137 : Résultat de concaténation trop long (ordre SQL). -138 : Arguments de la fonction "SUBSTR" invalides (ordre SQL). -144 : Numéro de section invalide (ordre SQL). -150 : Le résultat est une vue non autorisée (ordre SQL => PB DE PRIVILEGE -151 : Colonne non autorisée en mise à jour (ordre SQL). -152 : Le nom de la contrainte est égale à son type (ordre SQL). -153 : Le "CREATE VIEW" ne contient pas la liste des colonnes (ordre SQL). -154 : "CREATE VIEW" failed à cause d'une clause "UNION" (ordre SQL). -156 : Ordre SQL n'identifiant pas une table. -157 : Le nom de l'objet ne désigne pas une table (ordre SQL). -158 : Nombre de colonnes incorrect (ordre SQL). -159 : Problème token sur "DROP" (ordre SQL). -160 : Option incorrecte (ordre SQL). -161 : Résultat ne correspondant pas à la définition de la vue (ordre SQL). +162 : Tablespace en "CHECK PENDING" . -164 : "CREATE VIEW" non autorisé (ordre SQL). -170 : Nombre d'arguments invalide (ordre SQL). -171 : Type de donnée, longueur ou valeur invalide pour cette fonction (ordre SQL). -173 : Clause "UR" spécifiée mais le pointeur n'est pas en RO (ordre SQL). -180 : Problème dans le format de la date (ordre SQL).-181 : Problème dans le format de la date (ordre SQL). -182 : Expression arithmétique invalide (ordre SQL). -183 : Operation sur date invalide (ordre SQL). -184 : Paramètre invalide dans la date (ordre SQL). -185 : Pas d'exit "DATETIME" installé (SYSTEME => CMID). -186 : Longueur de date incrémentée, REBIND nécessaire (ordre SQL). -187 : Date/heure MVS® invalide => IPL + TOD CLOCK => CMID. -188 : Valeur de variable invalide (ordre SQL). -189 : CCSID invalide -191 : Longueur de "MIXED DATA" invalide (ordre SQL). -197 : "ORDER BY" non autorisé pour une union (ordre SQL). -198 : Opérande vide ou à blanc (ordre SQL). -199 : Mot clé invalide (ordre SQL). 

-203 : La référence à une colonne est ambigüe (ordre SQL). +203 : ETUDES. -204 : Nom non défini (ordre SQL). +204 : Objet spécifié inconnu de DB2 (ordre SQL). -205 : La colonne n'appartient pas à la table (ordre SQL). -206 : La colonne n'appartient à aucune table (ordre SQL). +206 : La colonne n'existe pas (ordre SQL). -208 : Clause "ORDER BY" invalide (ordre SQL). +218 : Paramètre "EXPLAIN" sur objet remote => Faire un rebind sans le paramètre "EXPLAIN" . -219 : Table inexistante (ordre SQL). +219 : (= -219). -220 : Erreur dans la définition de la colonne (ordre SQL). +220 : = -220.

Page 19: DOC_DB2

-221 : Colonne optionnelle omise (ordre SQL). -250 : Objet partitionné sans location (ordre SQL). -251 : Token invalide (ordre SQL). 

-300 : String non nul (ordre SQL). -301 : Valeur inutilisable à cause de son type (ordre SQL). -303 : Types de données non comparables (ordre SQL). -304 : ETUDES. +304 : = -304. -305 : Valeur nulle assignée sans indicateur de variable (ordre SQL). -309 : Prédicat invalide à cause d'une variable nulle (ordre SQL). -310 : Le paramètre décimal ne contient pas une valeur décimale (ordre SQL). -311 : Longueur de variable invalide (ordre SQL). -312 : Variable non définie (ordre SQL). -313 : Nombre de paramètres invalide (ordre SQL). -314 : Référence de variable ambigüe (ordre SQL). -330 : String intraduisible (ordre SQL). -331 : = -330. +331 : = -330 et -331. -332 : Paramètre de translation inconnu (ordre SQL). -333 : Sous type de chaîne variable différent du sous type connu (ordre SQL). -338 : Clause "ON" invalide (ordre SQL). +339 : Problème de version DB2 (conversion de caractère impossible). -339 : L'ordre SQL fait référence à la version 2.2, or, nous sommes en version 2.3 (ETUDES). -351 : Type de fichier invalide pour la version 5 de dB2. 

-400 : Nombre maximum d'utilisateurs définis au catalogue DB2 atteint. -401 : Opérandes arithmétiques non comparables (ordre SQL). -402 : Valeur arithmétique appliquée à du caractère (ordre SQL). +402 : Problème de location (ordre SQL). +403 : Alias failed, objet non trouvé (ordre SQL). -404 : Nom de colonne trop long (ordre SQL). -405 : Le littéral numérique n'est pas au bon rang (ordre SQL). -406 : ETUDES. -407 : Tentative d'insert ou d'update d'une valeur nulle dans une colonne non nulle (ordre SQL). -408 : Valeur non comparable au type de donnée (ordre SQL). -409 : Opérande de comptage invalide (ordre SQL). -410 : Le littéral en virgule flottante a plus de 30 caractères (ordre SQL). -411 : Le SQLID ne peut être utilisé avec une référence à un objet remote (ordre SQL). -412 : Colonnes multiples spécifiées (ordre SQL). -414 : La première opérande n'est pas une chaîne (ordre SQL). -415 : Union de deux tables ayant des colonnes non comparables (ordre SQL). -416 : Une opérande d'union contizent un nom long de colonne (ordre SQL). -417 : (= -418) Syntaxe invalide (ordre SQL). -418 : (= -417) Syntaxe invalide (ordre SQL). -419 : La division est en erreur (résultat négatif), (ordre SQL). -420 : Valeur invalide pour cette fonction (ordre SQL). -421 : Union de deux tables n'ayant pas le même nombre de colonnes (ordre SQL). -426 : Commit invalide -427 : Rollback invalide -440 : Nombre de paramètres invalide (ordre SQL). -444 : Nom d'utilisateur programme non trouvé. -450 : Problème de longueur de variable. -469 : Le call SQL doit spécifier une variable de sortie pour le paramètre (PGM => ETUDES). -470 : Problème avec une valeur nulle. -471 : Return code invalide (voir MSG MVS®). -497 : Nombre de noms d'objet supèrieur à 32767 pour la data-base 

-500 : Curseur fermé -501 : (= -500) Curseur fermé. -502 : Curseur déjà ouvert. -503 : Colonne non mise à jour car non identifiée dans l'ordre SQL. -504 : Pointeur non défini. -507 : (= -500) Curseur fermé.

Page 20: DOC_DB2

-508 : Pointeur non positionné. -509 : Table spécifiée différente de celle du pointeur. -510 : Table non modifiable. -511 : (= -510) Table non modifiable. -512 : Etat de référence à un objet remote invalide (ORDRE SQL). -513 : Tentative de création d'alias à partir d'un autre alias (ORDRE SQL). -514 : Pointeur pas en état "PREPARED". -516 : Erreur de codage (ORDRE SQL). -517 : Erreur dans le statut de la requête (ORDRE SQL). -518 : (= -517) Erreur dans le statut de la requête. -519 : Deuxième "PREPARE" sur pointeur déjà ouvert.-525 : Erreur de location dans un bind (relivraison nécessaire) =>Etudes. -530 : Valeur de clé invalide. -531 : Clé non mise à jour car lignes dépendantes. -532 : Delete non effectué car lignes dépendantes. -533 : Insertion multiple de lignes invalide. -534 : Clé primaire non mise à jour à cause d'une mise à jour multiple de lignes. +535 : Le résultat de l'update ou du delete peut dépendre de l'ordre des lignes. -536 : Delete invalide car la table pourrait en être affectée.-537 : La clause identifie plus d'une colonne. -538 : Clé non conforme. -539 : Absence de clé primaire pour cette table. -540 : Définition de table incomplète. +541 : Contrainte en double sur une clé. -542 : La colonne ne peut être en clé primaire car elle peut contenir la valeur "NULL". -543 : Ordre SQL invalide. -544 : (= -543) Ordre SQL invalide. -545 : (= -543) Ordre SQL invalide. -546 : Contrainte invalide. -548 : Contrainte sur colonne invalide. +551 : Opération non autorisée pour votre user id +552 : (= +551) Opération non autorisée pour votre user id.-551 à -556 : Problèmes d'autorisation (GRANT, REVOKED, USERID etc...) . -557 : Mot-clé invalide. +558 : Clause invalide pour un "GRANT" ou un "REVOKE". -558 : (= +558). -559 : Toutes les fonctions d'autorisation du sous-système DB2 ont été désactivées.

+561 : Problème d'autorisation (GRANT) +562 : (= +561). -567 : Package non autorisé -571 : Un résultat existe sur de multiples sites (ORDRE SQL). -574 : Valeur par défaut en conflit avec la définition de la colonne. 

-601 : Nom de l'objet identique au type de l'objet. -602 : Trop de colonnes spécifiées (= -680). -603 : Duplicate (études). -607 : Opération non définie pour cet objet. + 610 : Index en recovery pending : Tenter un recovery sur l'index -611 : "LOCKMAX" spécifié différent de zéro.-612 : Nom de la colonne en double. -613 : Clé primaire trop longue. -614 : Somme des longueurs de colonne supèrieur au maximum alloué.-615 : Ce type d'opération n'est pas alloué à un package.-616 : "DROP" non effectué car le premier objet est référencé par le second. -617 : Un index de type 1 ne peut pas être créé pour la table d'un tablespace large. -618 : Opération inconnue. -619 : Opération désallouée car le fichier de travail n'est pas stoppé. -620 : Ordre SQL invalide pour un tablespace dans le fichier de travail.-621 : Table déjà existante. -622 : "FOR MIXED DATA" invalide car l'option est à "NO". -623 : L'index clusterisé existe déjà pour cette table.-624 : La table à déjà une clé primaire. +625 : L'index primaire est absent ("CREATE INDEX" nécessaire) ETUDES.-625 : Index absent pour cette table. +626 : L'index est droppé ("CREATE INDEX" avec clé unique nécessaire) ETUDES.

Page 21: DOC_DB2

-626 : Modification non effectuée car le "PAGE SET" n'est pas stoppé. -627 : Modification non effectuée car le "PAGE SET" contient des fichiers.-628 : Ordre SQL avec plusieurs clauses exclusives. -629 : La valeur de cette clé ne peut pas être "NULL". -630 : Paramètre "NOT NULL" invalide pour un index de type 1. -631 : Clé étrangère trop longue. -632 : Table non dépendante car règles de restructuration effacées. -633 : Paramètre "DELETE RULE" invalide. -634 : Règle de "DELETE" invalide. -635 : Les règles de "DELETE" ne peuvent être différentes ou nulles. -636 : Les clés partitionnées ne sont pas dans l'ordre. -637 : Mot-clé en double. -638 : Définition de colonne manquante. -639 : Une colonne "NULL" ne peut pas être celle d'un index partitionné. -640 : Paramètre "LOCKSIZE" invalide pour une table avec un index de type 1. -642 : Trop de colonnes en une seule fois. -643 : "CHECK CONSTRAINT" supèrieure à 3800 caractères. -644 : Valeur de mot-clé invalide. +645 : "WHERE NOT NULL" ignoré car la clé de l'index ne peut être "NULL" (SUR ORDRE SELECT). -646 : Table déjà existante pour cet utilisateur. -647 : Le bufferpool n'a pas été activé . +650 : Table avec 750 colonnes (maximum atteint). -650 : Modification d'index invalide pour la table d'un tablespace large. -651 : Description de table supèrieure à la taille maximum du descripteur d'objets. -652 : Violation de la procédure de validation. +653 : Index partitionné inexistant. -653 : Table dans un tablespace partitionné invalide car index partitionné non créé. -655 : Problème de nom de volume dans un "CREATE" ou un "ALTER STOGROUP". + 658 : Strictement identique au + 610 -660 : Pas de limite de clé définie, index non créé. -661 : Nombre de partitions invalide, index non créé. -662 : La table n'est pas partitionnée, index partitionné non créé. -663 : Limite de valeur de clé invalide. +664 : L'index parttionné à trop de clés. -665 : Clause "PART" invalide ou omise. -666 : Commande non exécutée car déjà en cours : Passer la commande : -DIS UTIL(*), et vérifier qu'il ne s'agit pas d'un conflit d'utilitaires. Si c'est le cas faire soit un : -TERM UTIL(nom utilitaire) si ce dernier est terminé (SAUF REORG EN PHASE DE RELOAD), soit attendre la fin de l'utilitaire en cours. Si ce n'est pas le cas, agir comme s'il s'agissait d'un code SQL. -667 : Commande "DROP INDEX" inapropriée pour un tablespace partitionné. -668 : Colonne non ajoutée car la table a une procédure d'édition. -669 : Commande "DROP TABLE" inapropriée pour un tablespace partitionné. -670 : La longueur de l'enregistrement excède la taille de page maximum. -671 : Buffer pool non modifié car cela modifierait la taille des pages du tablespace.

-672 : Drop non autorisé. -676 : Une page de 32K de buffer pool ne peut pas être utilisée pour un index. -677 : Mémoire virtuelle insuffisante. -678 : Valeur limite de clé mal spécifiée, index non créé. -679 : Création failed car objet en drop pending : Soumettre le job en incident quand le drop a fini son commit. -680 : (= -602) Trop de colonnes spécifiées. -681 : Violation de la procédure d'installation. -682 : Le champ de procédure ne peut être chargé : Soumettre le job en incident quand le commit ou le rollback en cours est terminé. -683 : Type de colonne inconnu. -684 : Liste trop longue. -685 : La description du champ est invalide. -686 : Comparaison entre deux champs différents impossible. -687 : Types de champs non comparables. -688 : La valeur retournée par le champ procédure est invalide. -689 : Trop de colonnes définies pour une table dépendante. -690 : Problème d'autorisation. -691 : La table spécifiée n'existe pas.

Page 22: DOC_DB2

-692 : L'"UNIQUE INDEX" spécifié n'existe pas. -693 : Colonne mal définie. -694 : Commande non passée car la table est en drop pending. 

-713 : Valeur de remplacement invalide. -715 : Le programme n'est pas compilé dans la bonne release DB2. -716 : Programme précompilé avec un niveau incorrect pour cette release DB2. -717 : Plan ou package dépendant d'une release DB2 différente de celle en cours. -718 : Plan ou package invalide car la colonne IBMREQD de la table SYSIBM.PACKAGE contient un  caractère invalide. -719 : Bind add error, version de package déjà existante. -720 : Bind error, version de package déjà existante. -721 : Bind error, "TOKEN" non unique. -722 : Bind error, package inexistant. -726 : Bind error, package utilisé => Faire un free package avant le rebind. -730 : Le parent d'une table d'une base en RO doit être une table d'une base en RO.

-731 : Le DSN doit être défini avec : SHAREOPTION(1,3). -732 : La base est en ROSHARE mais pas le tablespace ou les index. -733 : La description d'un tablespace, d'un index ou d'une base doit être la même que celle du système qui les détient. -734 : Le paramètre ROSHARE d'une base ne peut pas être modifié par une lecture en ROSHARE. -735 : Base inaccessible car non partageable. -736 : Nom d'objet invalide. -737 : Le tablespace n'est pas alloué. +738 : Un changement doit être fait sur le READ-ONLY SYSTEM . -741 : Fichier de travail déjà existant pour ce membre. -742 : Mauvais fichier de travail spécifié. -751 : La procédure doit effectuer un rollback => ETUDES. -752 : Problème programme (modif programme + commit ou rollback nécessaires) => ETUDES. 

+802 : (= -802) : S0C7 => ETUDES. -802 : (= +802) : S0C7 => ETUDES. -803 : Valeur en double. -804 : Problème système. -805 : Programme inconnu du plan +806 : Problème d'isolation d'un tablespace dans un bind. +807 : Dépassement de capacité (overflow) dans une multiplication. -807 : Problème d'autorisation. -808 : Erreur dans le type "CONNECT". -811 : Le résultat d'un ordre SQL donne plus d'une ligne ou plus d'une valeur (doublons dans la table). -812 : "COLLECTION-ID" à blanc lors d'un package. -815 : Clause "GROUP BY" ou "HAVING" invalide. -817 : Résultat prohibé. -818 : La version du programme ne correspond pas à la compilation. -819 : Longueur du "PARSE TREE" différente de zéro, erreur système IMPORTANTE. -820 : La table du catalogue contient une valeur incompatible avec cette release de DB2. -822 : Erreur d'adressage en SQLDA. -840 : Trop d'items dans la liste. -842 : Conflit de connexion SQL. -843 : Connexion SQL absente. +863 : Les fichiers "MIXED" et graphiques ne sont pas supportés par DB2. -870 : Nombre de variables différent du nombre de descripteurs. 

900 : Erreur programme => ETUDES. -901 : La longueur de la demande est égale à zéro ou dépasse le maximum autorisé par DB2. -902 : Le pointeur de l'ECB est à 0 : Agir de la même manière que pour un - 805. -904 : Ressource indisponible : Faire sur la log tso un "/-DIS DB(nom de la db) USE" et voir son statut. Si un autre programme utilise cette ressource, il doit apparaître dans la colonne USE en face d' un ou plusieurs tablespaces. Il suffira alors de relancer le job en incident une fois les ressources libérées. Si rien n' apparaît dans la colonne USE mais que la base ou l'un de ses tablespaces n'est pas en statut RW, peut-être qu'un

Page 23: DOC_DB2

utilitaire les utilise ou bien qu'un job planté détient les ressources. Si ce n'est pas le cas, il ne faut pas relancer le job qui a fait -904 avant que tous les éléments de la base soient en RW. Voir abend VSAM 204-211-905 : Nombre limite de ressources atteinte : Relancer quand la charge est moins importante. -906 : Interception d'un message non SQL, la partie SQL du programme continue de se dérouler. -908 : Problème d'autorisation lors d'un rebind. -910 : Accés impossible car l'objet est en drop ou en alter pending : Soumettre le job en incident quand le drop ou l'alter en cours sont terminés. -911 : Ressource en Deadlock ou Timeout : Des updates ont été passés sur la ressource impactée et celle-ci attend au moins un COMMIT. Agir de la même manière que pour un -904.-913 : Sensiblement identique au -911. -917 : Bind package failed => Analyser les autres codes SQL de la sysout du job. -918 : Perte de la connexion à IMS ou à CICS. -919 : Erreur programme, rollback et relivraison nécessaires. -922 : Problème d'autorisation. -923 : Connexion non établie avec DB2 : Si DB2 est absent, relancer le job en incident quand DB2 est ok. Si DB2 est présent, vérifier la connection à ims (Sous IMF : ............). -924 : Sensiblement identique au -923. -927 : Le langage d'interface est invalide. -929 : Problème sur ordre SQL "DROP". -939 : Rollback éxigé sur erreur programme. -947 : Ce fichier ne peut pas être propagé. -948 : Opération distribuée invalide, relancer le fichier de travail. -950 : Connexion inexistante dans la base de communication. -965 : Erreur de procédure. 

+2000 : Un index de type 1 ne peut pas être créé ou modifié dans un environnement partagé. -2001 : Nombre de paramètres de variables différent du nombre attendu.

-30000 : Erreur de protocole. -30020 : Erreur de protocole, conversation désallouée. -30021 : Erreur de protocole, le manager ne supporte pas l'erreur à ce niveau. -30030 : Commit failed => ETUDES. -30040 : Ressource non inactive (serveur UNIX par exemple). -30041 : (= -30040). -30050 : Bind required, effectuer le bind du programme. -30051 : Ce bind package n'est pas actif. -30052 : Bind error, option de package invalide. -30053 : Problème d'autorisation -30060 : Accés au RDB refusé (non autorisé). -30061 : RDB non trouvé. -30070 : Commande invalide. -30071 : Type d'objet invalide. -30072 : Paramètre invalide. -30074 : Reply invalide. -30080 : Erreur de communication SNA LU6.2 (Liaison VTAM). -30090 : Opération invalide pour l'application. +30100 : Erreur système

LES REASON CODES LES PLUS COURANTS

Sur les tablespaces...

code Raison

Page 24: DOC_DB2

00C900EA Tablespace en cours d'utilisation par un job

00C90080 Tentative de maj sur tablespace en Read Only(RO)

00C90081 Tentative d'accès sur tablespace stoppé

00C90082 Tentative d'accès sur tablespace utilisé par un utilitaire(UTUT)

00C90083 Tentative d'accès sur tablespace utilisé par un utilitaire(UTRO) accès autorisé en lecture seulement

00C90084 Pb d'accès aux Tablespaces temporaires de tri DB2

00C90085 Limite des tablespaces temporaires de tri de DB2

00C90086 Tentative d'accès sur TS utilisé par un UT et qui n'est autorisé que pour un utilitaire(UT)

code Raison 00C90087 Page cassée : holala !! 00C90088 Deadlock : attendre et relancer00C90089 EDM POOL FULL.Voir équipe système 00C9008B Limite du nombre de Bases définie atteinte.Voir Equipe système

00C9008CTentative d'accès à un tablespace partitionné alors que l'index de partionnnement n'est pas trouvé

00C9008D même chose que 00C9008C

00C9008ETime Out,le verrou ne peut pas être pris dans le délai normal prévu pour IRLM.Patienter et recommencer

00C9008FTaille du DBD atteint / prévenir le système pour une réorg des TS de la database

00C90090 Le tablespace ou indexspace ne peut pas etre starté car un start est en cours00C90091 Start impossible car il y a des Theads indoubt.Prévenir le système00C90092 IRLM out-of-storage. Prévenir l'equipe système00C90093 Erreur IRLM.Prévenir le système

00C90094Le support VSAM est dans un etat autre que celui connu de DB2.Prévenir l'équipe système pour un RECOVER

00C90095 DB2 en cours de RESTART et la page accédée n'est pas encore disponible

00C90096Nombre de verrous sur page ou subpage d'index dépasse le nb maxi pour un user.Patienter et recommencer(numlkus)

00C90097Tentative de MAJ d'un tablespace marqué en FULL IMAGE COPY REQUIRED

00C90098 Limite du nombre d'utilisateurs atteint.Prévenir l'équipe système00C90099 Load sur une partition pleine.Prévenir le système00C9009A Anomalie de migration de release DB2.A soumettre au système00C9009B Load sur un tablespace full. A soumettre au système00C9009C Insert sur une partition pleine.A soumettre au système00C9009D Insert sur un tablespace full. A soumettre au système

Page 25: DOC_DB2

00C90084 Pb d'accès aux Tablespaces temporaires de tri DB200D70014Extent data Set Failed

Limite des extends VSAM.Voir système pour REORG ou plus de place sur le volume

00D70025 Extend failed , plus de place sur le volume

Exemple de LOAD

[sans SYSPUNCH] [avec SYSPUNCH] [Sysout] 

Notons que l'ordre des champs dans l'enregistrement en entrée n'a pas à être le même que l'ordre des colonnes dans la Table. Les cartes de contrôle du LOAD feront le bon transfert du champ en entrée à la colonne relationnelle.

Si vous codez un paramètre POSITION :

        Sans une 'end column', alors la longueur du champ en entrée est déterminée à partir de la spécification data type.

        Sans spécification du data type, la longueur est déterminée par les colonnes (début:fin) et le type de donnée en entrée devra correspondre à la définition de la colonne DB2.

        Avec un '*' dans la colonne début (ex, POSITION(*,30)) on précise que le champ dans l'enregistrement d'entrée commence une colonne après la fin du champ précédent.

Assurez-vous que sont bien spécifiés le bon fichier en entrée, les bons ordres de contrôle, et le fichier discard.

les exemples ne peuvent en aucun cas être repris tels quels

Exemple JCL avec descriptions des zones de la table dans le jcl :   //YD010M JOB JXM30000,REGION=7900K,MSGCLASS=R,MSGLEVEL=1,CLASS=D//LOAD0002 EXEC PGM=DSNUTILB,PARM='DB2Y,EXT0140.ZAQ.UL,',COND=(4,LT)//*-------------------------------------------------------------------*//* LOAD DE LA TABLE Z00M0Y00.HEA34I//*-------------------------------------------------------------------*//STEPLIB DD DSN=SYSP.DB2.V410.SDSNLOAD,DISP=SHR//SYSPRINT DD SYSOUT=*//UTPRINT  DD SYSOUT=*

Page 26: DOC_DB2

//SYSUDUMP DD SYSOUT=*//SYSERR   DD SYSOUT=*//DSNTRACE DD SYSOUT=*//SYSMAP   DD UNIT=SYSDA,SPACE=(CYL,(10,3),,,ROUND)//SORTOUT  DD UNIT=SYSDA,SPACE=(CYL,(30,10),,,ROUND),//         DISP=(NEW,DELETE,DELETE),DSN=&&SORTOUT//SYSREC00 DD DISP=SHR,//         DSN=PGMR.SEPG.EB1.HEA34I.SYSREC00.D311299//SYSUT1   DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)//SYSIN    DD *LOAD DATA LOG NO REPLACE INDDN SYSREC00 INTO TABLEZ00M0Y00.HEA34I(IDCTOF POSITION( 1 )CHAR( 11) ,IDOB POSITION( 12 )CHAR( 5) ,LNCTOF POSITION( 17 )CHAR( 32) ,DECTOF POSITION( 49 )INTEGER ,DFCTOF POSITION( 57 )INTEGER ,NUAB01 POSITION( 70 )CHAR( 7) ,IDWNOF POSITION( 77 )CHAR( 4) ,QTPROF POSITION( 81: 82)DECIMAL)/*

Description des zones (exemple):QTPROF : nom de la zonePosition (81:82) : Début de la zone en 81 et fin en 82DECIMAL : type de la zone

Exemple JCL avec descriptions des zones dans une syspunch   (qui peut être un PDS ou un séquentiel) :  

On retrouvera dans la syspunch la description des zones de la table à charger et les ordres de LOAD..

//LOAD0001 EXEC PGM=DSNUTILB,PARM='DB2Y,EXT0134.ZAQ.UL,',COND=(4,LT) //*--------------------------------------------------* //* LOAD DE LA TABLE Z00M0Y00.B56B1ST * //*--------------------------------------------------* //STEPLIB  DD DSN=SYSP.DB2.V410.SDSNLOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //UTPRINT  DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSERR   DD SYSOUT=* //DSNTRACE DD SYSOUT=* //SYSMAP   DD UNIT=SYSDA,SPACE=(CYL,(10,3),,,ROUND) //SORTOUT  DD UNIT=SYSDA,SPACE=(CYL,(30,10),,,ROUND), 

Page 27: DOC_DB2

//         DISP=(NEW,DELETE,DELETE),DSN=&&SORTOUT //SYSREC00 DD DISP=SHR, //         DSN=PGMR.SEPG.BV.B56B1ST.SYSREC00.D311299 //SYSUT1   DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) //SYSIN    DD DISP=SHR, //         DSN=PGMR.SEPG.BV.LOT53.SYSPUNCH(B56B1ST) /* //*

Sysout d'un job de LOAD d'une table :

Le copy pending apparait (entre autre, et ici c'est le cas) lorsqu'une table est gérée en LOG NO (pas d'inscription de l'activité sur la table). Lors d'un premier LOAD, la Table se met en copy pending.Il faut faire de suite un Full image Copy pour que DB2 sache en cas de reload d'ou il doit partir.

Exemple de LOAD

[sans SYSPUNCH] [avec SYSPUNCH] [Sysout] 

Notons que l'ordre des champs dans l'enregistrement en entrée n'a pas à être le même que l'ordre des colonnes dans la Table. Les cartes de contrôle du LOAD feront le bon transfert du champ en entrée à la colonne relationnelle.

Si vous codez un paramètre POSITION :

        Sans une 'end column', alors la longueur du champ en entrée est déterminée à partir de la

Page 28: DOC_DB2

spécification data type.

        Sans spécification du data type, la longueur est déterminée par les colonnes (début:fin) et le type de donnée en entrée devra correspondre à la définition de la colonne DB2.

        Avec un '*' dans la colonne début (ex, POSITION(*,30)) on précise que le champ dans l'enregistrement d'entrée commence une colonne après la fin du champ précédent.

Assurez-vous que sont bien spécifiés le bon fichier en entrée, les bons ordres de contrôle, et le fichier discard.

les exemples ne peuvent en aucun cas être repris tels quels

Exemple JCL avec descriptions des zones de la table dans le jcl :   //YD010M JOB JXM30000,REGION=7900K,MSGCLASS=R,MSGLEVEL=1,CLASS=D//LOAD0002 EXEC PGM=DSNUTILB,PARM='DB2Y,EXT0140.ZAQ.UL,',COND=(4,LT)//*-------------------------------------------------------------------*//* LOAD DE LA TABLE Z00M0Y00.HEA34I//*-------------------------------------------------------------------*//STEPLIB DD DSN=SYSP.DB2.V410.SDSNLOAD,DISP=SHR//SYSPRINT DD SYSOUT=*//UTPRINT  DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSERR   DD SYSOUT=*//DSNTRACE DD SYSOUT=*//SYSMAP   DD UNIT=SYSDA,SPACE=(CYL,(10,3),,,ROUND)//SORTOUT  DD UNIT=SYSDA,SPACE=(CYL,(30,10),,,ROUND),//         DISP=(NEW,DELETE,DELETE),DSN=&&SORTOUT//SYSREC00 DD DISP=SHR,//         DSN=PGMR.SEPG.EB1.HEA34I.SYSREC00.D311299//SYSUT1   DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)//SYSIN    DD *LOAD DATA LOG NO REPLACE INDDN SYSREC00 INTO TABLEZ00M0Y00.HEA34I(IDCTOF POSITION( 1 )CHAR( 11) ,IDOB POSITION( 12 )CHAR( 5) ,LNCTOF POSITION( 17 )CHAR( 32) ,DECTOF POSITION( 49 )INTEGER ,

Page 29: DOC_DB2

DFCTOF POSITION( 57 )INTEGER ,NUAB01 POSITION( 70 )CHAR( 7) ,IDWNOF POSITION( 77 )CHAR( 4) ,QTPROF POSITION( 81: 82)DECIMAL)/*

Description des zones (exemple):QTPROF : nom de la zonePosition (81:82) : Début de la zone en 81 et fin en 82DECIMAL : type de la zone

Exemple JCL avec descriptions des zones dans une syspunch   (qui peut être un PDS ou un séquentiel) :  

On retrouvera dans la syspunch la description des zones de la table à charger et les ordres de LOAD..

//LOAD0001 EXEC PGM=DSNUTILB,PARM='DB2Y,EXT0134.ZAQ.UL,',COND=(4,LT) //*--------------------------------------------------* //* LOAD DE LA TABLE Z00M0Y00.B56B1ST * //*--------------------------------------------------* //STEPLIB  DD DSN=SYSP.DB2.V410.SDSNLOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //UTPRINT  DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSERR   DD SYSOUT=* //DSNTRACE DD SYSOUT=* //SYSMAP   DD UNIT=SYSDA,SPACE=(CYL,(10,3),,,ROUND) //SORTOUT  DD UNIT=SYSDA,SPACE=(CYL,(30,10),,,ROUND), //         DISP=(NEW,DELETE,DELETE),DSN=&&SORTOUT //SYSREC00 DD DISP=SHR, //         DSN=PGMR.SEPG.BV.B56B1ST.SYSREC00.D311299 //SYSUT1   DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) //SYSIN    DD DISP=SHR, //         DSN=PGMR.SEPG.BV.LOT53.SYSPUNCH(B56B1ST) /* //*

Sysout d'un job de LOAD d'une table :

Page 30: DOC_DB2

Le copy pending apparait (entre autre, et ici c'est le cas) lorsqu'une table est gérée en LOG NO (pas d'inscription de l'activité sur la table). Lors d'un premier LOAD, la Table se met en copy pending.Il faut faire de suite un Full image Copy pour que DB2 sache en cas de reload d'ou il doit partir.