Service SQL IBM i (AS/400) · Vue et Fonction table
QSYS2.DATA_AREA_INFO
Zones de données et leur valeur
Renvoie les zones de données (*DTAARA) avec leur type, leur longueur et leur valeur, en vue sur tout le système ou en fonction de table pour une zone précise.
À quoi ça sert
QSYS2.DATA_AREA_INFO existe sous deux formes. La vue liste les zones de données du système avec leur bibliothèque, leur nom, leur type, leur longueur, leurs positions décimales, leur valeur (DATA_AREA_VALUE ou DATA_AREA_BINARY_VALUE) et leur texte. La fonction de table prend en paramètre le nom de la zone (DATA_AREA_NAME) et sa bibliothèque (DATA_AREA_LIBRARY, *LIBL par défaut).
Le paramètre IGNORE_ERRORS vaut NO par défaut : une zone inexistante ou inaccessible provoque alors une erreur.
C'est l'équivalent SQL de DSPDTAARA et RTVDTAARA, mais exploitable dans une requête : on peut chercher une valeur dans plusieurs zones ou la joindre à d'autres tables.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT DATA_AREA_LIBRARY, DATA_AREA_NAME, DATA_AREA_VALUE FROM QSYS2.DATA_AREA_INFO
WHERE DATA_AREA_NAME = 'DTAARA1'
Ce que l'IBM i a renvoyé le 01/10/2026 (1 ligne au plus) :
| DATA_AREA_LIBRARY Bibliothèque de la zone de données | DATA_AREA_NAME Nom de la zone de données | DATA_AREA_VALUE Valeur de la zone de données |
|---|---|---|
| BIBAPP067 | DTAARA1 | NYMPHALI |
Données anonymisées : les noms de système, de profils, de
bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma
JOBISQL sont des objets de démonstration créés pour ce site.
L'exemple d'IBM
Afficher la valeur de la zone de données DTAARA1 d'après la liste de bibliothèques courante, ou lister toutes les zones de données nommées DTAARA1 avec leur valeur.
-- Description: Show the value of DTAARA1 based on the current library list.
SELECT DATA_AREA_LIBRARY, DATA_AREA_NAME, DATA_AREA_VALUE FROM
TABLE(QSYS2.DATA_AREA_INFO('DTAARA1', '*LIBL'));
-- Description: List all data areas named DTAARA1 and their values.
SELECT DATA_AREA_LIBRARY, DATA_AREA_NAME, DATA_AREA_VALUE FROM QSYS2.DATA_AREA_INFO
WHERE DATA_AREA_NAME = 'DTAARA1';
Bon à savoir
Avec la vue, filtrez sur DATA_AREA_LIBRARY et DATA_AREA_NAME : parcourir toutes les zones du système coûte cher. La fonction de table, qui vise une zone, est bien plus rapide.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
DATA_AREA_NAME |
VARCHAR(10) | obligatoire | Nom de la zone de données |
DATA_AREA_NAME |
VARCHAR(10) | obligatoire | Nom de la zone de données |
DATA_AREA_LIBRARY |
VARCHAR(10) | '*LIBL' | Bibliothèque de la zone de données |
DATA_AREA_LIBRARY |
VARCHAR(10) | '*LIBL' | Bibliothèque de la zone de données |
IGNORE_ERRORS |
VARCHAR(3) | 'NO' | Ignorer les erreurs |
IGNORE_ERRORS |
VARCHAR(3) | 'NO' | Ignorer les erreurs |
Colonnes renvoyées (9)
Afficher les 9 colonnes
| Colonne | Type | Signification |
|---|---|---|
DATA_AREA_LIBRARY |
VARCHAR(10) | Bibliothèque de la zone de données |
DATA_AREA_NAME |
VARCHAR(10) | Nom de la zone de données |
DATA_AREA_TYPE |
VARCHAR(5) | Type de la zone de données |
LENGTH |
INTEGER | Longueur |
DECIMAL_POSITIONS |
INTEGER | Nombre de positions décimales |
DATA_AREA_VALUE |
VARCHAR(2000) | Valeur de la zone de données |
DATA_AREA_BINARY_VALUE |
VARBIN | Valeur binaire de la zone de données |
SQL_SEQUENCE |
VARCHAR(3) | Séquence SQL |
TEXT_DESCRIPTION |
VARCHAR(50) | Texte descriptif |