Aller au contenu

Commande CL IBM i (AS/400)

CHGDTAARA

Modifier une zone de données

En bref

La commande CHGDTAARA (Modifier une zone de données) permet de modifier la valeur de la zone de données locale (*LDA), la zone de données de groupe (*GDA), la zone de données de paramètre d'initialisation de programme (*PDA) ou la zone de données indiquée et stockée dans une bibliothèque.

CHGDTAARA se lit CHG (Modifier) + DTAARA. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

CHGDTAARA DTAARA(…) VALUE(…)

Paramètres

  • DTAARA Spécification zone de données obligatoire
  • VALUE Nouvelle valeur obligatoire

Astuce : dans une session 5250, tapez CHGDTAARA puis F4 pour l'invite de saisie, et F1 sur un paramètre pour son aide.

Aide IBM i de la commande

Texte du F1, IBM i 7.5 en français (bibliothèque QSYS)

Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Sous conditions

La commande CHGDTAARA (Modifier une zone de données) permet de modifier la valeur de la zone de données locale (*LDA), la zone de données de groupe (*GDA), la zone de données de paramètre d'initialisation de programme (*PDA) ou la zone de données indiquée et stockée dans une bibliothèque. La nouvelle valeur doit avoir le même type et une longueur inférieure ou égale à celle de la zone de données ou de la sous-chaîne de caractères indiquée.

Dans le cadre des travaux de groupe, la zone de données indiquée peut être la zone de données de groupe (*GDA). Celle-ci est automatiquement associée au groupe et n'est pas accessible à partir des travaux figurant en dehors du groupe. Cette zone de données de type caractère comporte 512 octets. Pour plus d'informations sur les travaux de groupes, reportez-vous au manuel Ensemble de rubriques Gestion des travaux de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

La zone de données locale (*LDA) correspond à une zone de données de type caractère comportant 1024 octets. Elle est automatiquement associée à votre travail et aucun autre travail ne peut y avoir accès.

Dans les travaux à démarrage anticipé, la zone de données indiquée peut être la zone de données PIP (*PDA). Celle-ci est automatiquement associée à votre travail à démarrage anticipé. Elle n'est pas accessible à d'autres travaux. La longueur de cette zone de données alphanumérique est 2000 octets. Pour plus d'informations sur les travaux à démarrage anticipé, reportez-vous au manuel Ensemble de rubriques Gestion des travaux de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Il est possible de modifier une sous-chaîne d'une zone de données alphanumérique sans que cette modification affecte le reste de la zone. Cette sous-chaîne est déterminée par la position de début et la longueur que vous lui attribuez. Dans ce cas, la nouvelle valeur doit avoir une longueur inférieure ou égale à celle de la sous-chaîne.

Lorsque cette commande est lancée pour une zone autre que la zone de données locale, la zone de données de groupe ou la zone de données PIP, la zone considérée est verrouillée par le travail ou l'unité d'exécution pendant la modification. De cette façon, les commandes provenant d'autres travaux ne peuvent ni la modifier, ni la supprimer tant que l'opération en cours n'est pas achevée. Si la zone de données est partagée entre plusieurs travaux et mise à jour en plusieurs étapes au moyen de plusieurs commandes d'un même travail, cette zone doit être explicitement allouée à ce travail pour toute la durée de l'opération. Les zones de données non locales, de groupe ou de paramètre d'initialisation de programme peuvent être explicitement allouées, à l'aide de la commande ALCOBJ (Allouer un objet). Aucune allocation n'est nécessaire quand la zone de données locale, de groupe ou de paramètre d'initialisation de programme est indiquée pour la commande CHGDTAARA.

Restrictions :

  1. Pour utiliser cette commande, l'utilisateur doit disposer du droit de modification (*CHANGE) sur la zone de données en cours de modification et du droit d'exécution (*EXECUTE) sur la bibliothèque dans laquelle est stockée cette zone. Aucun droit spécifique n'est requis pour la zone de données locale, la zone de données de groupe ou la zone de données PIP.
  2. Cette commande est à unités d'exécution protégées sous certaines conditions. Les restrictions suivantes s'appliquent :
    1. La modification des zones de données DDM dans un travail qui admet les unités d'exécution multiples n'est pas à unités d'exécutions protégées.
    2. La modification des zones de données DDM échoue lorsque plusieurs unités d'exécution sont actives dans un travail.
    3. La modification des zones de données spéciales (*LDA, *GDA et *PDA) n'est autorisée qu'à partir de l'unité d'exécution initiale et peut échouer avec une unité d'exécution secondaire.

Paramètres

Mot-clé Description Valeurs possibles Remarques
DTAARA Spécification zone de données Liste d'éléments Obligatoire, positionnel 1
Élément 1: Zone de données Valeurs uniques: *LDA, *GDA, *PDA
Autres valeurs: Nom d'objet qualifié
Qualificatif 1: Zone de données Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
Élément 2: Spécifications de sous-chaîne Valeurs uniques: *ALL
Autres valeurs: Liste d'éléments
Élément 1: Position de début sous-chaîne 1-2000
Élément 2: Longueur sous-chaîne 1-2000
VALUE Nouvelle valeur Sans restriction Obligatoire, positionnel 2

Spécification zone de données (DTAARA)

Indique le nom et la bibliothèque de la zone de données à modifier. Pour les zones de données caractères, il est également possible d'indiquer la position de début et la longueur de la chaîne de caractères à modifier dans cette zone.

Ce paramètre est obligatoire.

Elément 1 : Zone de données

Valeurs uniques

*LDA
Modifie la zone de données locale associée à votre travail. La longueur de cette zone de données caractères est de 1024 octets.
*GDA
Modifie la zone de données de groupe associée à votre travail de groupe. Cette zone de données de type caractère comporte 512 octets.
*PDA
Modifie la zone de données de paramètre d'initialisation de programme associée à votre travail anticipé. La longueur de cette zone de données alphanumérique est 2000 octets.

Qualificatif 1 : Zone de données

nom
Indiquez le nom de la zone de données à modifier.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de l'unité d'exécution jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
La bibliothèque en cours pour l'unité d'exécution permet de localiser l'objet. Si celle-ci n'est indiquée, QGPL est prise par défaut.
nom
Indiquez le nom de la bibliothèque contenant la zone de données.

Elément 2 : Spécifications de sous-chaîne

Valeurs uniques

*ALL
Modifie la totalité de la zone de données.

Elément 1 : Position de début sous-chaîne

1-2000
Indiquez la position de début de la zone de données à modifier.

Elément 2 : Longueur sous-chaîne

1-2000
Indiquez la longueur de la sous-chaîne de zone de données à modifier.

Nouvelle valeur (VALUE)

Indique la nouvelle valeur de la zone de données. Celle-ci doit correspondre aux attributs de données de sa description, précisés au moment de la création de la zone. Si, lors de la création des données, *CHAR ou *LGL a été indiqué pour le paramètre Type (TYPE) de la commande Créer une zone de données (CRTDTAARA) et si la nouvelle valeur est numérique, elle doit être indiquée entre apostrophes. En revanche, si *DEC a été indiqué en regard du paramètre TYPE (Type) de la commande CRTDTAARA, les apostrophes ne sont pas nécessaires.

Ce paramètre est obligatoire.

valeur-non-restreinte
Indiquez la valeur de la zone de données.

Exemples

Exemple 1 : modification de la valeur de la zone de données

CHGDTAARA   DTAARA(MYLIB/MYDATA)  VALUE(GOODNIGHT)

Cette commande permet de modifier la valeur de la zone de données MYDATA, de la bibliothèque MYLIB, en GOODNIGHT. La zone de données est réservée aux données de type caractères et doit comporter au moins 9 caractères.

Exemple 2 : modification de la valeur logique de la zone de données

CHGDTAARA   DTAARA(PAYROLLSW)  VALUE('0')

Cette commande permet de modifier la valeur logique de la zone de données PAYROLLSW en zéro (0). La zone de données est recherchée dans la liste des bibliothèques.

Exemple 3 : modification des caractères spécifiques de la zone de données locale

CHGDTAARA   DTAARA(*LDA (5 4))  VALUE('TWO')

Cette commande permet de modifier les caractères 5 à 8 de la zone de données locale de l'utilisateur. La nouvelle valeur étant plus courte que la sous-chaîne, celle-ci est complétée par un blanc.

Messages d'erreur

Messages *ESCAPE

CPF101A
L'opération sur la zone de données DDM &1 de &2 a échoué.
CPF1015
Zone de données &1 non trouvée dans &2.
CPF1018
Non autorisé à modifier la zone de données.
CPF1019
Paramètre VALUE incorrect.
CPF1020
Paramètre VALUE trop long.
CPF1021
Bibliothèque &1 non trouvée pour zone de données &2.
CPF1022
Non autorisé à bibliothèque &1 pour zone de données &2.
CPF1026
Le paramètre VALUE doit être égal à '0' ou à '1'.
CPF1043
L'alignement sur une limite pour la zone de données n'est pas valide. Boundary alignment for data area not valid.
CPF1044
Le paramètre AREA n'est pas valide pour la zone de données. AREA parameter not valid for data area.
CPF1045
Le paramètre CPYPTR n'est pas valide pour la zone de données. CPYPTR parameter not valid for data area.
CPF1046
DTAARA(*GDA) admis uniquement pour travaux de groupe.
CPF1062
Chaîne vide incorrecte comme valeur caractère.
CPF1063
Impossible d'allouer la zone de données &1 dans &2.
CPF1067
Impossible d'allouer la bibliothèque &1.
CPF1072
Paramètre DTAARA(*PDA) incorrect car il ne s'agit pas d'un travail anticipé.
CPF1087
Sous-chaîne non permise pour zone de données décimale ou logique.
CPF1088
Position de début à l'extérieur de la zone de données.
CPF1089
Sous-chaîne incorrecte pour zone de données.
CPF1138
Paramètre VALUE incorrect pour zone de données &1.
CPF1155
Paramètre VALUE trop long pour zone de données &1.
CPF1162
L'alignement sur une limite pour la zone de données &1 n'est pas valide. Boundary alignment for data area &1 not valid.
CPF1163
Le paramètre AREA n'est pas valide pour la zone de données &1. AREA parameter not valid for data area &1.
CPF1168
Le paramètre CPYPTR n'est pas valide pour la zone de données &1. CPYPTR parameter not valid for data area &1.
CPF1170
Position de début à l'extérieur de la zone de données &1.
CPF1192
Sous-chaîne incorrecte pour zone de données &1.
CPF180B
Fonction &1 non admise.
CPF180C
Fonction &1 non admise.
CPF18BE
La zone de données &1 n'a pas été modifiée car le poste de journal n'a pu être enregistré.
CPF4ACF
Echec de l'opération pour l'objet &1 dans &2 type *&3 en raison d'erreurs de réplication.
CPF9899
Erreur lors du traitement de la commande.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.