Gestion des DATE, TIME & TIMESTAMP dans DB2 V7 - Azenorak

Gestion des DATE, TIME & TIMESTAMP dans DB2 La valeur « NULL » La valeur NULL. Sommaire. 1 Introduction. 2 Les fonctions et registres. 2.1 Fonctions ...


un extrait du document




Gestion des DATE, TIME & TIMESTAMP dans DB2La valeur « NULL »La valeur
NULL
Sommaire
1 Introduction 3 2 Les fonctions et registres 4 2.1 Fonctions scalaires 4 2.2 Les fonctions colonnes 8 2.3 Registres 8 3 UTILISATION 9 3.1 description de la table exemple : 9 3.2 Règles liées aux performances 9 3.3 Dans un programme COBOL 10
3.3.1 Dans un SELECT (ou FETCH) 10
3.3.2 Dans un INSERT 11
3.3.3 Dans un UPDATE 14 4 Ajout d'une colonne dans une table 15 4.1 rappel : règles applicables à tout type de données 15 4.2 règles spécifiques aux données temporelles 15 4.3 Conséquences sur le suivi des applications 16 5 Impact sur les utilitaires 17 5.1 DSNTIAUL 17 5.2 UNLOAD (V7) 21 5.3 LOAD 23 Annexe : SQLCODES 24
DEFINITIONIntroduction Une donnée en format DATE, TIME ou TIMESTAMP doit toujours contenir une
date calendaire ou une heure réelle. DB2 contrôle la validité d'une date, heure et timestamp qui doivent
toujours contenir une valeur plausible. Exemples : Une date avec jour = 00 ou jour= 31 pour un mois de 30 jours, est
interdit. DB2 rejette également une date (ou timestamp) avec jour = 29 février si
l'année n'est pas bissextile.
est NULL lorsque sa valeur est inconnue. Elle n'est pas renseignée ou
correspond à un ensemble vide.
Au niveau conceptuel, une donnée déclarée facultative, peut-être NULL.
Selon son format, une donnée qui contient des espaces ou zéro ou une
autre valeur ... n'est pas NULL, elle est valorisée.
NULL fait partie des mots réservés DB2
Exemple :
On veut stocker le montant d'une prime appréciée lors de l'entretien
annuel de chaque salarié. Cette donnée n'est pas valorisée au moment de
la création du salarié. Si ce montant est initialisé à zéro, on ne sait
pas s'il a été défini à zéro ou si la prime n'a pas été estimée. Le
concept NULL permet cette distinction.
Une donnée est définie NULL ou NOT NULL au moment de la création de la
colonne dans la table. La définition d'une colonne peut donc être :
NOMCOL data-type NOT NULL
La colonne doit toujours être renseignée.
NOMCOL data-type NOT NULL WITH DEFAULT
Dans un INSERT, si la colonne n'est pas valorisée, elle est initialisée
à :
espace si son data-type est CHAR ou VARCHAR
zéro si son data-type est numérique (DECimal, SMALLINT, INTEGER, FLOAT,
...).
date du jour si son data-type est DATE
heure machine si son data-type est TIME
date et heure machine si son data-type est TIMESTAMP
NOMCOL data-type NOT NULL WITH DEFAULT valeur
Si la colonne n'est pas valorisée, elle sera initialisée avec la valeur
indiquée qui peut être une constante ou un registre DB2 de format
compatible avec son data-type.
NOMCOL data-type
Si la colonne n'est pas valorisée, elle est stockée NULL.
NOMCOL data-type WITH DEFAULT valeur
Ici la colonne est NULL possible par contre pour la stocker NULL, il
faut impérativement le préciser au niveau de l'insertion ou de la mise à
jour de la ligne (voir exemple dans le chapitre utilisation). DESCRIPTION PHYSIQUE
DB2 gère différents formats externes : ISO, EUR, USA, JIS (japonais).
DATE : - sous forme ISO : AAAA-MM-JJ
....