La meilleure solution consiste à créer un livre de copie qui permette d'avoir un "préfixe" pour chaque champ, puis d'utiliser REPLACING pour fournir des préfixes différents pour les différentes instructions COPY. Vous n'aurez alors pas à coder OF/IN pour tous les champs, et le programme et le listing seront plus clairs.
La méthode de Paxdiablo est la plus efficace pour faire ce que vous voulez, même si la raison pour laquelle vous voulez le faire aurait été intéressante.
Je suis surpris que personne n'ait mentionné la "modification de la référence" :
MOVE usage-1 ( 3 : 5 ) TO usage-2 ( 3 : 5)
Où 3 est la position de départ dans les données et 5 la longueur. Je préfère de loin la définition de Paxdiablo à celle-ci.
Il n'est pas si surprenant que personne n'ait proposé de RENAMES.
01 A-TABLE.
05 A-T-1 PIC XX.
05 A-T-2 PIC X.
05 A-T-3 PIC 9.
05 A-T-4 PIC XXX.
05 A-T-5 PIC X(4).
66 A-TABLE-EXTRA RENAMES A-T-2 THRU A-T-3.
01 B-TABLE.
05 B-T-1 PIC XX.
05 B-T-2 PIC X.
05 B-T-3 PIC 9.
05 B-T-4 PIC XXX.
05 B-T-5 PIC X(4).
66 B-TABLE-EXTRA RENAMES B-T-2 THRU B-T-3.
MOVE A-TABLE-EXTRA TO B-TABLE-EXTRA
Comme le MOVE CORRESPONDING, il est à éviter (pour les mêmes raisons que mon commentaire, et en plus personne n'utilise les Level 66, donc personne ne sait ce qu'ils font).
Une autre solution consiste à redéfinir chacun de vos niveaux 01, mais pourquoi se donner cette peine ?