Accéder au contenu principal Passer au contenu complémentaire

Déplacements de zones

Dans les déplacements de zones, le contenu des zones est déplacé sans conversion. 

Prenez l'exemple suivant :

Sur AS/400 IBMi, lorsque vous déplacez un champ numérique packé vers un champ alpha, aucune conversion n'est effectuée en numérique étendu. Pour obtenir cette conversion, il faut d'abord transférer le champ numérique packé dans un champ numérique étendu (zoned) à l'aide de l'instruction Z-ADD.

 

Dans Oracle, SQL Server et ODBC, lorsque vous déplacez un champ numérique vers un champ alpha, aucune conversion n'est effectuée en numérique étendu. Pour obtenir cette conversion, vous devez utiliser l'instruction STR.

 

MOVER – Copier des octets de droite à gauche (uniquement AS/400 IBMi)

Cette opération copie le contenu d'un champ/d'une constante dans un autre champ, de droite à gauche. 

Vous pouvez utiliser des sous-chaînes de caractères pour le champ d'origine et de destination. 

Aucune conversion n'est effectuée au cours de la copie.

MOVER bField1/Constant TO b.Field2  

 

Cette opération effectue un transfert octet par octet, de droite à gauche, du contenu de Field1 vers Field2 dans la limite de la longueur de Field2.

Si Field2 est plus courte que Field1, le transfert est limité à la longueur de Field2. 

DCL W.field_1 CHAR 9
DCL W.field_2 CHAR 6
 
  W.field_1 =  ’ABCDEFGHI’
  W.field_2  = ’123456’
  MOVER W.field_1 TO W.field_2 
  TRACE W.field_2  

Trace "DEFGHI"

 

Si Field2 est plus longue que Field1, le transfert n’affecte que la partie de Field2 égale à la longueur de Field1.

DCL W.field_1 CHAR 6
DCL W.field_2 CHAR 9
 
  W.field_1 = ’ABCDEF’
  W.field_2 = ’123456789’
  MOVER W.field_1 TO W.field_2 
  TRACE W.field_2 

 

Trace "123ABCDEF"

Grâce à la notion d'extrait de champ, vous pouvez attribuer une partie du champ cible uniquement.

DCL W.field_1 CHAR 6
DCL W.field_2 CHAR 9
 
  W.field_1 = ’ABCDEF’
  W.field_2 = ’123456789’
  MOVER W.field_1(3:2) TO W.field_2(5:3) 
  TRACE W.field_2 

Trace "12345CD89"

 

MOVEA – Copie gauche d'octets complétée par un caractère

 

Cette opération copie le contenu d'un champ/d'une constante dans un autre champ et le complète en répétant le caractère spécifié. Vous pouvez utiliser des sous-chaînes de caractères pour le champ d'origine et le champ de destination. Aucune conversion n'est effectuée au cours de la copie.

 

MOVEA b.Field1/Constant TO b.FieldR COMPLETEDBY b.Field2/Constant

 

Cette instruction n'est utile que si Field2 est plus longue que Field1.

Cette opération effectue un transfert, octet par octet, de gauche à droite, du contenu de Field1 vers Field2 dans la limite de la longueur de Field1 et complète Field2 par le premier caractère de Field3.

Si Field2 est plus courte que Field1, le transfert est limité à la longueur de Field2. 

 

DCL W.field_1 CHAR 9
DCL W.field_2 CHAR 6
 
  W.field_1 = ’ABCDEFGHI’
  W.field_2 = ’123456’
  MOVEA W.field_1 TO W.field_2 COMPLETEDBY ‘.’
  TRACE W.field_2 

Trace "ABCDEF"

 

Si Field2 est plus longue que Field1, le transfert n'affecte que la partie de Field2 égale à la longueur de Field1. Le reste de Field2 reçoit ensuite le premier caractère de Field3, répété jusqu'à compléter la longueur.

 

DCL W.field_1 CHAR 6
DCL W.field_2 CHAR 9
 
  W.field_1 = ’ABCDEF’
  W.field_2 = ’123456789’
  MOVEA W.field_1 TO W.field_2 COMPLETEDBY ‘.’
  TRACE W.field_2 

Trace "ABCDEF..."

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !