Service SQL IBM i (AS/400) · Fonction table
SYSTOOLS.VALIDATE_DATA
Valider le contenu d'un fichier
Contrôle les données d'un membre de fichier et signale les enregistrements invalides : caractères incorrects, décimales erronées.
À quoi ça sert
Cette fonction de table lit le membre MEMBER_NAME (*FIRST par défaut) du fichier FILE_NAME de la bibliothèque LIBRARY_NAME et renvoie une ligne par anomalie rencontrée : numéro d'enregistrement relatif, colonne en cause, avertissement SQL, code motif et texte.
On l'utilise pour trouver les données invalides qui font échouer des requêtes SQL, typiquement des zones numériques décimales corrompues dans des fichiers anciens écrits par des programmes RPG. Elle évite de parcourir le fichier à la main et précise l'enregistrement et la colonne à corriger.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT * FROM TABLE(SYSTOOLS.VALIDATE_DATA('APPLIB', 'FILE1'))
Aucune ligne : la fonction ne liste que les données non valides, et la table testée n'en contient pas.
L'exemple d'IBM
Valider le contenu du fichier FILE1 de la bibliothèque APPLIB.
-- Description: Validate the content of FILE1.
SELECT * FROM TABLE(SYSTOOLS.VALIDATE_DATA('APPLIB', 'FILE1'));
Bon à savoir
Un résultat vide signifie qu'aucune anomalie n'a été trouvée. Sur un gros fichier, la lecture complète peut être longue.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
LIBRARY_NAME |
VARCHAR(10) | obligatoire | Nom de la bibliothèque |
FILE_NAME |
VARCHAR(10) | obligatoire | Nom du fichier |
MEMBER_NAME |
VARCHAR(10) | '*FIRST' | Nom du membre |
Colonnes renvoyées (9)
Afficher les 9 colonnes
| Colonne | Type | Signification |
|---|---|---|
VALIDATE_TIME |
TIMESTAMP | Heure de la validation |
LIBRARY_NAME |
VARCHAR(10) | Nom de la bibliothèque |
FILE_NAME |
VARCHAR(10) | Nom du fichier |
MEMBER_NAME |
VARCHAR(10) | Nom du membre |
RELATIVE_RECORD_NUMBER |
BIGINT | Numéro d'enregistrement relatif |
SQL_WARNING |
INTEGER | Avertissement SQL |
REASON_CODE |
INTEGER | Code motif |
COLUMN_NAME |
VARCHAR(128) | Nom de la colonne |
WARNING_TEXT |
VARCHAR(1000) | Texte de l'avertissement |