Aller au contenu

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ètreTypePar défautSignification
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
ColonneTypeSignification
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