Vous êtes sur la page 1sur 31

c 

mm 

mm
    

mm     

mm      

mm      

mm          

mm    

mm 

mm  !   

mm         

mm  !    

mm  " #$% 

mm   %%  

mm & 

mm    

 '  ! 

(  ) )'    

mm 

Autorisation Requise :

 a MVS® Console operator - START DB2

 SYSADM (Administrateur système) Toutes commandes


sauf - START DB2

 SYSCTR toutes commandes sauf - START DB2

 SYSOPR Toutes commandes sauf - REC BSDS,


- START
DATABASE,
- STOP DATABASE
 DBADM (Tout pouvoir sur une DB)

 DBCTR Toutes les commandes pour la Database

 DBMAINT

L'utilitaire de réorganisation (REORG)





ctilisez le Panel DB2I ctilities pour générer le JC 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 :

 cn Tablespace et tous ses Index associés.

 cne seule partition d'un Tablespace et les Index


associés.

 cn Index ou une partition d'Index.

es Phases d'Exécution du REORG :

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

 Phase 1 : cNOAD : la phase d'cNOAD copie les


données du Tablespace dans un fichier séquentiel. es
lignes 'Droppées' sont éliminées et les lignes réallouées
sont remises à leur place. cn 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 : REOAD : le fichier séquentiel créé par la


phase d'cNOAD est rechargé dans le Tablespace. es
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 : BcID : reconstruction des Index afin de
refléter la nouvelle localisation des lignes.

Ôecondary Authid List




a 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 AcTHID

2. SECONDARY AcTHID

3. CcRRENT SQ AcTHID

4. OWNER AcTHID

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


es données peuvent être chargées dans des Tables
relationnelles en utilisant l'utilitaire OAD. 'entrée du OAD
est toujours un fichier séquentiel.
es données peuvent être chargées dans plus d'une TABE
tant que :

 es Tables sont dans le même Tablespace.

 es données à charger dans les deux Tables proviennent


du même fichier. cn 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 OAD.
Si vous choisissez de ne pas voir validées les contraintes
d'intégrité référentielle pendant le OAD, alors DB2 marquera
le Tablespace avec la restriction CHECK PENDING.
es données chargées sont traitées par toute procédure
existante (edit, field, ou validation).

*+,-.+/+ 0

| 
 

//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,
// DISP=(,CATLG,DELETE),
// LABEL=6,
// UNIT=3490,VOL=(,RETAIN,,,REF=*.REF1),
// DCB=(RECFM=VB,LREC L=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 REFERENCE
COPY 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
//*=================================================================
====
//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



'ordre ATER est utilisé pour modifier la définition d'un objet


dans DB2.

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


Vous pouvez faire un ATER sur une table, un index, un
storage group, une database ou un tablespace.
'ordre ATER TABE ajoutera une nouvelle colonne à une
table existante.
a 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.
ATER TABE nom de la table
ADD nom de la colonne type de la donnée
Exemple :
ATER TABE COMPTE_TAB
ADD DATE DATE NOT Nc WITH DEFAcT

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

 es types de données de colonnes.

 es longueurs de Colonnes.

 es qualifieurs d'Attribut.

 'ordre des Colonnes.

 a suppression d'une Colonne.

 cne EDITPROC.

 ATER d'une FIEDPROC sur une Colonne.

La jointure

a 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 champs communs entre ces
différentes tables.
orsque 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 TINSTRcC , la table


TCOcRS est parcourue (scan) pour trouver la ou les lignes de
TCOcRS pour lesquelles la valeur de la colonne INSTRcC -
COcRS correspond avec la valeur de la colonne NcMERO
INSTRcC de la table TCOcRS. Quand il y à correspondance,
les champs NOM-COcRS, HEcRE-COcRS, et JOcR COcRS de
la ligne sont sélectionnés pour la table résul tat.

| ?

 !"# # 
 " # $#|% ! !#& 
&################################################################
#####
|'''%"#|  
 $ %!|| $ #& 
 $ ||& 
||% (% (""%  
&################################################################
#####
| '%"#)  
 %||| #| *( | || %# +! 
 $  %!|| $ #& 
 $ |%|| $ #& 
 $ %!|| $ #& 
 $ !||| %#"| %#$,!  
#--./# !#01) 
| #|% (% (""%  
 $ %+||| %#| 
&!!| %| 
| #|% (%( $ %+""%  
 $  ||& 
|  $ | | 
!%!"!| %| *%!  23
| |(!(| 
 $ ||& 
& !/(""% 4 
&################################################################
####=

Les IBM® Ôervices Aids




IBM® fournit 4 ctilitaires MVS® séparés qui prennent en


compte DB2 et qui, par conséquent, peuvent effectuer
diverses fonctions sur les TABES. Ces 4 ctilitaires sont :

 DSN1COPY : peut être utilisé pour manipuler les fichiers


VSAM DS supportant les Tablespaces DB2 et :

0 Créer une copie de back-up.

0 Déclencher une édition pour toutes, ou une série


de pages DB2.

0 Vérifier la validité de toutes les Pages (validity


check).

0 Traduire les ID des objets DB2.

 DSN1PRNT : permet d'éditer des Pages d'un Tablespace


ou d'un Index Space de plusieurs manières :
0 Toutes les Pages ou une série de Pages.

0 Seulement les Pages qui contiennent une valeur


spécifique.

0 Edition dump hexadécimal ou formaté.

 DSN1OGP : peut éditer un rapport détaillé ou résumé


des enregistrements de la og 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


'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 ACCOcNTS50_100;
DROP TABE TABE1;
DROP TABESPACE PATDB.TSPACE1;
DROP DATABASE PATDB;
DROP STORGROcP STORGROcP1;

L'ordre GRANT
'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
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 SEECT ON TABE TETcD
TO GORDON
Syntaxe de l'ordre GRANT :
Le langage de manipulation des données - DML
(Data Manipulation anguage)

SQ possède 4 ordres qui permettent la manipulation de


données.

 Pour interroger les données : SEECT

 Pour modifier les données : INSERT / cPDATE / DEETE

L'ordre COMMENT ON



'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.SYSCOcMNS

 SYSIBM.SYSTABES

Exemple :

Pour la documentation d'une TABLE :


COMMENT ON TABE cSERX.TABE1 IS
'CECI EST A VERSION 1 DE A TABE COMPTE'
Pour la documentation d'une COLONNE :
COMMENT ON COcMN TABE1.NO_COMPTE IS
'NcMERO DE COMPTE - DOIT ETRE cNIQcE'
Pour la documentation de COLONNE multiple :
COMMENT ON cSERX.TABE1
(NAME IS 'NOM COMPTE - VOIR IVRE',
SODE IS 'SODE $999999999.99')
Les utilitaires de Backup et de Recovry


e Backup et le Recovery de DB2 vous permettent de


restaurer des tablespaces, des partitions, ou des groupes de
pages. Ceci est basé sur :

 e OGGING : Toutes les modifications sur les pages de


données sont gardées sur la log de DB2.

 es IMAGE COPIES : Deux utilitaires donnent la


possibilité de créer des image copies de tablespaces.

 'ctilitaire de Restauration (RECOVERY) : '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


e angage de Définition de Données de SQ 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.
es ordres DD sont :

 CREATE

 ATER

 DROP

 COMMENT ON

Objet CREATE ALTER DROP


Storgroup O O O
Database O O O
TableSpace O O O
Table O O O
Index O O O
Vue O N O
Synonyme O N O
Alias O N O

Archive Log
a commande -ARCHIVE OG 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 OG Active.

es Paramètres :

 MODE (QcIESCE) - '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 QcIESCT 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'archiva ge.

La table Ô ÔIBM.Ô ÔTIL de la directory

'utilité de cette ligne dans la TABE SYScTI 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 SQ.
Pour interroger la table SYScTI, on doit utiliser la fonction
ctilitaire DISPAY, ou la commande -DISPAY cTIITY.
Pour supprimer une ligne, on doit utiliser la fonction utilitaire
TERMINATE, ou la commande -TERM cTIITY


Le ÔELECT de base

'obtention de données en SQ se fait par l'intermédiaire de


l'ordre SEECT. 'ordre SEECT de base est constitué des
clauses principales suivantes :

 SEECT - 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)

 a clause INTO n'est utilisée que lorsque le SEECT est


inséré dans un programme.

Display Thread

Abréviation : -DIS THD

Ce DISPAY permet de visualiser l'état des connexions avec


DB2 à un instant T.
2 types de DISPAY THREAD sont possibles :

 Type (ACTIVE) qui est l'option par défaut qui permet de


visualiser les THREADS actif à un instant T.
 Type (INDOcBT) 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 :

 Name : le nom de connexion égal au cSERID TSO si


THREAD TSO, égal au nom du CICS ou de l'IMS.

 ST : le Statut du THREAD

0 'N' signifie en cours de signature

0 'T' THREAD établi

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

 PNAME : nom du plan utilisé

 AcTHID : l'AcTHID 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 OCATION,
soit le cWID.

Display du statut d'une database

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

C'est le message par défaut de DISPAY DATABASE quand


"cSE" ou 'OCKS" n'est pas spécifié.
es colonnes de ce message sont :

 NAME - es noms des TABESPACES et/ou INDEX


SPACES dans la DATABASE.

 TYPE - "TS' pour les TABESPACES et "IX' pour les


INDEX SPACE.

 STATcS - Statut courant du TABESPACE et/ou des


INDEX SPACE. Il peut avoir une des valeurs suivantes :
0 RW - Accès en Read/Write permis.

0 RO - Accès en Read Only permis.

0 STOP - e space est à l'arrêt.

0 cT - Accès d'un ctilitaire seul est permis.

 PHYERRO - cne valeur hexadécimale indiquant le plus


petit numéro de page sur laquelle une 'error range' a été
détectée par DB2.

 PHYERRHI - cne valeur en hexadécimal indiquant le plus


grand numéro de page sur laquelle une 'error range' a
été détectée par DB2.

 CATAOG - 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 TABESPACE 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 GROcP
BY.
SEECT nom de colonne
FROM nom de table
GROcP BY spécification des colonnes

L'ordre CREATE

'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 Nc,
nom de colonne 3 type de la donnée-3 ...
i  
     
      

CREATE TABE NCOMPTE-TAB

(TYPE CHAR(l),
SODE DECIMA(9,2) NOT Nc WITH DEFAcT,
NAME VARCHAR(35) NOT Nc)
IN PATDB.TSPACE1
i  
     
      

CREATE TABE SAMPE TAB

(FIRSTNME CHAR(20) NOT Nc,


STNME CHAR(20) NOT Nc,
EMP-NO CHAR(5) NOT Nc cNIQcE,
PRIMARY KEY (EMP-NO)
IN DSN8D23A.DSN823B
i  
     
      

CREATE TABE SAMPE-TAB2

(CASS_NO DEC(4) NOT Nc,


OC-BDG CHAR(4) NOT Nc,
OC-ROOM CHAR(2) NOT Nc,
SCHED-TIME CHAR(5) NOT Nc,
CASS-DESC CHAR(25) NOT Nc,
cNIQcE (OC-BDG,OC_ROOM,SCHED-TIME),
PRIMARY KEY (CASS_NO)
IN DSN8D23A.DSN823B

567869:86 2?

ÔL Abend
+000 : Execution réussie
-007: Caractère interdit (ordre SQ).
-010 : String non terminé (ordre SQ).
+012 : Colonne non trouvée dans le from (ordre SQ).
-029 : Clause "INTO" manquante (ordre SQ).
-060 : Type invalide dans un ordre SQ.
-084 : Ordre SQ non répertorié.
+098 : e résultat est une semi-colonne (ordre SQ).
+100 : ignes non trouvées (ordre SQ).
-101 : Ordre SQ trop long ou trop complexe.
-102 : Chaîne littérale trop longue (ordre SQ).
-103 : ittéral numérique invalide dans un ordre SQ.
-104 : Symbole invalide dans un ordre SQ.
-105 : Token invalide dans un ordre SQ.
-107 : Nom trop long (ordre SQ).
-109 : Clause interdite dans un ordre SQ.
-110 : ittéral hexadécimal invalide dans un ordre SQ.
+110 : Message d'information.
-111 : a fonction de la colonne n'inclue pas son nom (ordre SQ).
+111 : Option "ScBPAGE" invalide (ordre SQ).
-112 : Opérande de fonction invalide (ordre SQ).
-113 : Caractère invalide (ordre SQ).
-114 : a location ne pointe pas le serveur courant (cNIX).
-115 : Problème avec l'opérateur de comparaison (ordre SQ).
-117 : Nombre d'objets différent du nombre de colonnes (ordre SQ).
+117 : Nombre de valeurs insérées différent du nombre de colonnes de la table
(ordre SQ).
-118 : a table ou la vue de l'insert est déjà présente dans le from (ordre SQ).
-119 : Colonne non incluse au groupe par la clause (ordre SQ).
-120 : a clause "WHERE ON SET" contient une fonction de colonne (ordre SQ).
-121 : Nom de colonne identifié plus d'une fois (ordre SQ).
-122 : Colonne incluse dans le "SEECT" mais pas dans le "GROcP BY" (ordre SQ).
-125 : a clause n'identifie pas une colonne du résultat (ordre SQ).
-126 : Deux clauses incompatibles (ordre SQ).
-127 : "DISTINCT" est spécifié plus d'une fois dans un "ScBSEECT" (ordre SQ).
-128 : Valeur "Nc" invalide (ordre SQ).
-129 : Trop de noms de tables (ordre SQ).
-131 : Types de données incompatibles (ordre SQ).
-132 : a deuxième opérande n'est pas une chaîne (ordre SQ).
-133 : Problème de corrélation de fonctions (ordre SQ).
-134 : csage incorrect d'un nom long de colonne (ordre SQ).
-136 : ongueur de clé de tri supèrieure à 4000 bytes (ordre SQ).
-137 : Résultat de concaténation trop long (ordre SQ).
-138 : Arguments de la fonction "ScBSTR" invalides (ordre SQ).
-144 : Numéro de section invalide (ordre SQ).
-150 : e résultat est une vue non autorisée (ordre SQ => PB DE PRIVIEGE
-151 : Colonne non autorisée en mise à jour (ordre SQ).
-152 : e nom de la contrainte est égale à son type (ordre SQ).
-153 : e "CREATE VIEW" ne contient pas la liste des colonnes (ordre SQ).
-154 : "CREATE VIEW" failed à cause d'une clause "cNION" (ordre SQ).
-156 : Ordre SQ n'identifiant pas une table.
-157 : e nom de l'objet ne désigne pas une table (ordre SQ).
-158 : Nombre de colonnes incorrect (ordre SQ).
-159 : Problème token sur "DROP" (ordre SQ).
-160 : Option incorrecte (ordre SQ).
-161 : Résultat ne correspondant pas à la définition de la vue (ordre SQ).
+162 : Tablespace en "CHECK PENDING" .
-164 : "CREATE VIEW" non autorisé (ordre SQ).
-170 : Nombre d'arguments invalide (ordre SQ).
-171 : Type de donnée, longueur ou valeur invalide pour cette fonction (ordre
SQ).
-173 : Clause "cR" spécifiée mais le pointeur n'est pas en RO (ordre SQ).
-180 : Problème dans le format de la date (ordre SQ).
-181 : Problème dans le format de la date (ordre SQ).
-182 : Expression arithmétique invalide (ordre SQ).
-183 : Operation sur date invalide (ordre SQ).
-184 : Paramètre invalide dans la date (ordre SQ).
-185 : Pas d'exit "DATETIME" installé (SYSTEME => CMID).
-186 : ongueur de date incrémentée, REBIND nécessaire (ordre SQ).
-187 : Date/heure MVS® invalide => IP + TOD COCK => CMID.
-188 : Valeur de variable invalide (ordre SQ).
-189 : CCSID invalide
-191 : ongueur de "MIXED DATA" invalide (ordre SQ).
-197 : "ORDER BY" non autorisé pour une union (ordre SQ).
-198 : Opérande vide ou à blanc (ordre SQ).
-199 : Mot clé invalide (ordre SQ).
-203 : a référence à une colonne est ambigüe (ordre SQ).
+203 : ETcDES.
-204 : Nom non défini (ordre SQ).
+204 : Objet spécifié inconnu de DB2 (ordre SQ).
-205 : a colonne n'appartient pas à la table (ordre SQ).
-206 : a colonne n'appartient à aucune table (ordre SQ).
+206 : a colonne n'existe pas (ordre SQ).
-208 : Clause "ORDER BY" invalide (ordre SQ).
+218 : Paramètre "EXPAIN" sur objet remote => Faire un rebind sans le
paramètre "EXPAIN" .
-219 : Table inexistante (ordre SQ).
+219 : (= -219).
-220 : Erreur dans la définition de la colonne (ordre SQ).
+220 : = -220.
-221 : Colonne optionnelle omise (ordre SQ).
-250 : Objet partitionné sans location (ordre SQ).
-251 : Token invalide (ordre SQ).
-300 : String non nul (ordre SQ).
-301 : Valeur inutilisable à cause de son type (ordre SQ).
-303 : Types de données non comparables (ordre SQ).
-304 : ETcDES.
+304 : = -304.
-305 : Valeur nulle assignée sans indicateur de variable (ordre SQ).
-309 : Prédicat invalide à cause d'une variable nulle (ordre SQ).
-310 : e paramètre décimal ne contient pas une valeur décimale (ordre SQ).
-311 : ongueur de variable invalide (ordre SQ).
-312 : Variable non définie (ordre SQ).
-313 : Nombre de paramètres invalide (ordre SQ).
-314 : Référence de variable ambigüe (ordre SQ).
-330 : String intraduisible (ordre SQ).
-331 : = -330.
+331 : = -330 et -331.
-332 : Paramètre de translation inconnu (ordre SQ).
-333 : Sous type de chaîne variable différent du sous type connu (ordre SQ).
-338 : Clause "ON" invalide (ordre SQ).
+339 : Problème de version DB2 (conversion de caractère impossible).
-339 : 'ordre SQ fait référence à la version 2.2, or, nous sommes en version 2.3
(ETcDES).
-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 SQ).
-402 : Valeur arithmétique appliquée à du caractère (ordre SQ).
+402 : Problème de location (ordre SQ).
+403 : Alias failed, objet non trouvé (ordre SQ).
-404 : Nom de colonne trop long (ordre SQ).
-405 : e littéral numérique n'est pas au bon rang (ordre SQ).
-406 : ETcDES.
-407 : Tentative d'insert ou d'update d'une valeur nulle dans une colonne non nulle
(ordre SQ).
-408 : Valeur non comparable au type de donnée (ordre SQ).
-409 : Opérande de comptage invalide (ordre SQ).
-410 : e littéral en virgule flottante a plus de 30 caractères (ordre SQ).
-411 : e SQID ne peut être utilisé avec une référence à un objet remote (ordre
SQ).
-412 : Colonnes multiples spécifiées (ordre SQ).
-414 : a première opérande n'est pas une chaîne (ordre SQ).
-415 : cnion de deux tables ayant des colonnes non comparables (ordre SQ).
-416 : cne opérande d'union contizent un nom long de colonne (ordre SQ).
-417 : (= -418) Syntaxe invalide (ordre SQ).
-418 : (= -417) Syntaxe invalide (ordre SQ).
-419 : a division est en erreur (résultat négatif), (ordre SQ).
-420 : Valeur invalide pour cette fonction (ordre SQ).
-421 : cnion de deux tables n'ayant pas le même nombre de colonnes (ordre SQ).
-426 : Commit invalide
-427 : Rollback invalide
-440 : Nombre de paramètres invalide (ordre SQ).
-444 : Nom d'utilisateur programme non trouvé.
-450 : Problème de longueur de variable.
-469 : e call SQ doit spécifier une variable de sortie pour le paramètre (PGM =>
ETcDES).
-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 SQ.
-504 : Pointeur non défini.
-507 : (= -500) Curseur fermé.
-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 SQ).
-513 : Tentative de création d'alias à partir d'un autre alias (ORDRE SQ).
-514 : Pointeur pas en état "PREPARED".
-516 : Erreur de codage (ORDRE SQ).
-517 : Erreur dans le statut de la requête (ORDRE SQ).
-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 : e 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 : a 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 : a colonne ne peut être en clé primaire car elle peut contenir la valeur
"Nc".
-543 : Ordre SQ invalide.
-544 : (= -543) Ordre SQ invalide.
-545 : (= -543) Ordre SQ 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, cSERID 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 : cn résultat existe sur de multiples sites (ORDRE SQ).
-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 : "OCKMAX" 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 : cn 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 SQ 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 : 'index clusterisé existe déjà pour cette table.
-624 : a table à déjà une clé primaire.
+625 : 'index primaire est absent ("CREATE INDEX" nécessaire) ETcDES.
-625 : Index absent pour cette table.
+626 : 'index est droppé ("CREATE INDEX" avec clé unique nécessaire) ETcDES.
-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 SQ avec plusieurs clauses exclusives.
-629 : a valeur de cette clé ne peut pas être "Nc".
-630 : Paramètre "NOT Nc" 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 "DEETE RcE" invalide.
-634 : Règle de "DEETE" invalide.
-635 : es règles de "DEETE" ne peuvent être différentes ou nulles.
-636 : es clés partitionnées ne sont pas dans l'ordre.
-637 : Mot-clé en double.
-638 : Définition de colonne manquante.
-639 : cne colonne "Nc" ne peut pas être celle d'un index partitionné.
-640 : Paramètre "OCKSIZE" 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 Nc" ignoré car la clé de l'index ne peut être "Nc" (ScR
ORDRE SEECT).
-646 : Table déjà existante pour cet utilisateur.
-647 : e 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 "ATER STOGROcP".
+ 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 : a table n'est pas partitionnée, index partitionné non créé.
-663 : imite de valeur de clé invalide.
+664 : '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 cTI(*), et vérifier qu'il ne s'agit pas d'un conflit
d'utilitaires. Si c'est le cas faire soit un : -TERM cTI(nom utilitaire) si ce dernier
est terminé (SAcF REORG EN PHASE DE REOAD), 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 SQ.
-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 TABE" inapropriée pour un tablespace partitionné.
-670 : a 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 : cne 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 : e 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 : iste trop longue.
-685 : a description du champ est invalide.
-686 : Comparaison entre deux champs différents impossible.
-687 : Types de champs non comparables.
-688 : a 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 : a table spécifiée n'existe pas.
-692 : '"cNIQcE 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 : e 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 : e parent d'une table d'une base en RO doit être une table d'une base en
RO.
-731 : e DSN doit être défini avec : SHAREOPTION(1,3).
-732 : a base est en ROSHARE mais pas le tablespace ou les index.
-733 : a 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 : e 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 : e tablespace n'est pas alloué.
+738 : cn changement doit être fait sur le READ-ONY SYSTEM .
-741 : Fichier de travail déjà existant pour ce membre.
-742 : Mauvais fichier de travail spécifié.
-751 : a procédure doit effectuer un rollback => ETcDES.
-752 : Problème programme (modif programme + commit ou rollback nécessaires)
=> ETcDES.
+802 : (= -802) : S0C7 => ETcDES.
-802 : (= +802) : S0C7 => ETcDES.
-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 : e résultat d'un ordre SQ donne plus d'une ligne ou plus d'une valeur
(doublons dans la table).
-812 : "COECTION-ID" à blanc lors d'un package.
-815 : Clause "GROcP BY" ou "HAVING" invalide.
-817 : Résultat prohibé.
-818 : a version du programme ne correspond pas à la compilation.
-819 : ongueur du "PARSE TREE" différente de zéro, erreur système IMPORTANTE.
-820 : a table du catalogue contient une valeur incompatible avec cette release de
DB2.
-822 : Erreur d'adressage en SQDA.
-840 : Trop d'items dans la liste.
-842 : Conflit de connexion SQ.
-843 : Connexion SQ absente.
+863 : es fichiers "MIXED" et graphiques ne sont pas supportés par DB2.
-870 : Nombre de variables différent du nombre de descripteurs.
900 : Erreur programme => ETcDES.
-901 : a longueur de la demande est égale à zéro ou dépasse le maximum
autorisé par DB2.
-902 : e 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)
cSE" et voir son statut.
Si un autre programme utilise cette ressource, il doit apparaître dans la colonne
cSE 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 cSE
mais que la base ou l'un de ses tablespaces n'est pas en statut RW, peut-être qu'un
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 SQ, la partie SQ 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 SQ 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 : e langage d'interface est invalide.
-929 : Problème sur ordre SQ "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 : cn 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 => ETcDES.
-30040 : Ressource non inactive (serveur cNIX 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 c6.2 (iaison VTAM).
-30090 : Opération invalide pour l'application.
+30100 : Erreur système

     



  
?
?
?? 
 ?

 å ??  ??

? 
 
       


? 
       
     

? 
       
    

? 
       
        cc

      


        c       
? 
 
  

? 
 !
   "
      #$

? 
   
       #$

? 
       %   c &   &    c

å8 ! 56:
.0; Page cassée : holala !!
.00 Deadlock : attendre et relancer
.0. EDM POOL FULL.Voir équipe système
.0 Limite du nombre de Bases définie atteinte.Voir Equipe système
Tentative d'accès à un tablespace partitionné alors que l'index de
.0
partionnnement n'est pas trouvé
.0| même chose que 00C9008C
Time Out,le verrou ne peut pas être pris dans le délai normal prévu pour
.0
IRLM.Patienter et recommencer
Taille du DBD atteint / prévenir le système pour une réorg des TS de la
.0
database
.. Le tablespace ou indexspace ne peut pas etre starté car un start est en cours
.. Start impossible car il y a des Theads indoubt.Prévenir le système
.. IRLM out-of-storage. Prévenir l'equipe système
..- Erreur IRLM.Prévenir le système
Le support VSAM est dans un etat autre que celui connu de DB2.Prévenir
..<
l'équipe système pour un RECOVER
.., DB2 en cours de RESTART et la page accédée n'est pas encore disponible
Nombre de verrous sur page ou subpage d'index dépasse le nb maxi pour
..*
un user.Patienter et recommencer(numlkus)
Tentative de MAJ d'un tablespace marqué en FULL IMAGE COPY
..;
REQUIRED
..0 Limite du nombre d'utilisateurs atteint.Prévenir l'équipe système
... Load sur une partition pleine.Prévenir le système
.. Anomalie de migration de release DB2.A soumettre au système
.. Load sur un tablespace full. A soumettre au système
.. Insert sur une partition pleine.A soumettre au système
..| Insert sur un tablespace full. A soumettre au système
.0< Pb d'accès aux Tablespaces temporaires de tri DB2
|;<
Limite des extends VSAM.Voir système pour REORG ou plus de place
=7:78 7  7
sur le volume
5 8
|; , Extend failed , plus de place sur le volume

Exemple de LOAD
[sans SYSPcNCH] [avec SYSPcNCH] [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. es cartes de contrôle du OAD 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


÷ 
          
  
//YD010M JOB
JXM30000,REGION=7900K,MSGCASS=R,MSGEVE=1,CASS=D
//OAD0002 EXEC
PGM=DSNcTIB,PARM='DB2Y,EXT0140.ZAQ.c,',COND=(4,T)
//*-------------------------------------------------------------------*
//* LOAD DE LA TABLE Z00M0 00.HEA34I
//*-------------------------------------------------------------------*
//STEPIB DD DSN=SYSP.DB2.V410.SDSNOAD,DISP=SHR
//SYSPRINT DD SYSOcT=*
//cTPRINT DD SYSOcT=*
//SYScDcMP DD SYSOcT=*
//SYSERR DD SYSOcT=*
//DSNTRACE DD SYSOcT=*
//SYSMAP DD cNIT=SYSDA,SPACE=(CY,(10,3),,,ROcND)
//SORTOcT DD cNIT=SYSDA,SPACE=(CY,(30,10),,,ROcND),
// DISP=(NEW,DEETE,DEETE),DSN=&&SORTOcT
//SYSREC00 DD DISP=SHR,
// DSN=PGMR.SEPG.EB1.HEA34I.SYSREC00.D311299
//SYScT1 DD cNIT=SYSDA,SPACE=(4000,(20,20 ),,,ROcND)
//SYSIN DD *
OAD DATA OG NO REPACE INDDN Ô ÔREC00 INTO TABLE
Z00M0 00.HEA34I
(
IDCTOF POSITION( 1 )
CHAR( 11) ,
IDOB POSITION( 12 )
CHAR( 5) ,
NCTOF POSITION( 17 )
CHAR( 32) ,
DECTOF POSITION( 49 )
INTEGER ,
DFCTOF POSITION( 57 )
INTEGER ,
NcAB01 POSITION( 70 )
CHAR( 7) ,
IDWNOF POSITION( 77 )
CHAR( 4) ,
'  
÷

)
/*
Description des zones (exemple):
QTPROF : nom de la zone
Position (81:82) : Début de la zone en 81 et fin en 82
DECIMA : type de la zone

÷ 
         
  
  

On retrouvera dans la syspunch la description des zones de la


table à charger et les ordres de OAD..
//OAD0001 EXEC
PGM=DSNcTIB,PARM='DB2Y,EXT0134.ZAQ.c,',COND=(4,T)
//*--------------------------------------------------*
//* LOAD DE LA TABLE Z00M0 00.B56B1ÔT *
//*--------------------------------------------------*
//STEPIB DD DSN=SYSP.DB2.V410.SDSNOAD,DISP=SHR
//SYSPRINT DD SYSOcT=*
//cTPRINT DD SYSOcT=*
//SYScDcMP DD SYSOcT=*
//SYSERR DD SYSOcT=*
//DSNTRACE DD SYSOcT=*
//SYSMAP DD cNIT=SYSDA,SPACE=(CY,(10,3),,,ROcND)
//SORTOcT DD cNIT=SYSDA,SPACE=(CY,(30,10),,,ROcND),
// DISP=(NEW,DEETE,DEETE),DSN=&&SORTOcT
//SYSREC00 DD DISP=SHR,
// DSN=PGMR.SEPG.BV.B56B1ST.SYSREC00.D311299
//SYScT1 DD cNIT=SYSDA,SPACE=(4000,(20,20),,,ROcND)
//SYSIN DD DISP=SHR,
// DSN=PGMR.SEPG.BV.OT53.Ô ÔPNCH(B56B1ST)
/*
//*
Ôysout d'un job de LOAD d'une table :
e copy pending apparait (entre autre, et ici c'est le cas)
lorsqu'une table est gérée en OG NO (pas d'inscription de
l'activité sur la table).
ors d'un premier OAD, 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 SYSPcNCH] [avec SYSPcNCH] [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. es cartes de contrôle du OAD
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.

???????? c  '*' s  c ( 

 (* 30))c sc ms
'sm'cmmcc
sc mc

ss- ssscsc 


 sssc c 
sc
i  
     
      

[   [ n  u n  nu un


i  
     
      




 [ u [
                 


÷    
    

// 010M !
"M30000 #$% &7900 ! M %CL &# M %L$'$L&1 CL &(
//L (0002$"$C 

%M&( "L!
#M&'(!2 $"0140) *"L ' C (&(4 L)
# # # # ()
//*-------------------------------------------------------------------*
//*LO $ EL T %LE. &E ' 
//*-------------------------------------------------------------------*
// $
L!((( & +
(!2'410 ( L ( (
& H#
// +
#(( + *&*
//U
#(( + U&*
// + U(UM
(( + U&*
// + $##(( + U&*
//( # C$(( + U&*
// + M
((U& + (
C$&(C+L (10 3) # U()
// # U((U& + (
C$&(C+L (30 10) # U() 
//(
&($, ($L$$ ($L$$) ( &-- # U
// + #$C00(((
& H# 
//( &
%M# $
%$!1H$ 34 + #$C00(311299
// + U1((U& + (
C$&(4000 (20 20) # U()
// + ((* + T# %LE
# ()
L ((  L % #$
L C$((SSRE
. &E ' 
(
(C F
 (1)
CH #(11) 
( !
 (12)
CH #(5) 
LC F
 (17)
CH #(32) 
($C F
 (49)
$%$# 
(FC F
 (57)
$%$# 
U !01
 (70)
CH #(7) 
(, F
 (77)
, - , ./ /0  
CH #(4) 
'  
÷

)
/*
Description des zones (exemple):
QTPROF : nom de la zone
Position (81:82) : Début de la zone en 81 et fin en 82
DECIMA : type de la zone

÷ 
         
   
  

On retrouvera dans la syspunch la description des


zones de la table à charger et les ordres de OAD..
//OAD0001 EXEC
PGM=DSNcTIB,PARM='DB2Y,EXT0134.ZAQ.c,',COND=(4,T)
//*--------------------------------------------------*
//* LOAD DE LA TABLE Z00M0 00.B56B1ÔT *
//*--------------------------------------------------*
//STEPIB DD DSN=SYSP.DB2.V410.SDSNOAD,DISP=SHR
//SYSPRINT DD SYSOcT=*
//cTPRINT DD SYSOcT=*
//SYScDcMP DD SYSOcT=*
//SYSERR DD SYSOcT=*
//DSNTRACE DD SYSOcT=*
//SYSMAP DD cNIT=SYSDA,SPACE=(CY,(10,3),,,ROcND)
//SORTOcT DD cNIT=SYSDA,SPACE=(CY,(30,10),,, ROcND),
// DISP=(NEW,DEETE,DEETE),DSN=&&SORTOcT
//SYSREC00 DD DISP=SHR,
// DSN=PGMR.SEPG.BV.B56B1ST.SYSREC00.D311299
//SYScT1 DD cNIT=SYSDA,SPACE=(4000,(20,20),,,ROcND)
//SYSIN DD DISP=SHR,
// DSN=PGMR.SEPG.BV.OT53.Ô ÔPNCH(B56B1ST)
/*
//*
Ôysout d'un job de LOAD d'une table :
e copy pending apparait (entre autre, et ici c'est le cas)
lorsqu'une table est gérée en OG NO (pas d'inscription de
l'activité sur la table).
ors d'un premier OAD, 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.

Vous aimerez peut-être aussi