Comme un champ AnV est de type alphanumérique, il peut être utilisé dans des expressions arithmétiques et logiques de la même façon que le type An.
Remarque : comme les champs AnV consomment deux octets de temps système et comme il faut les dénuder au moyen d'un traitement supplémentaire, il n'est pas conseillé d'utiliser le format AnV avec des sources de données non relationnelles.
Si un des deux opérandes dans une concaténation entre deux champs est un champ de type AnV, des règles alphanumériques de longueur variable sont utilisées pour effectuer la concaténation :
L'expression suivante n'a pour résultat le format AnV que lorsque x est au format AnV.
EDIT(x,mask)
La longueur réelle du résultat est le nombre de caractères dans le masque autre que '$'.
Notez que la longueur réelle de zéro peut en résulter.
EDIT(x) peut être utilisée pour convertir un champ AnV à une valeur de nombre entier lorsque x est au format AnV.
La seule différence dans l'évaluation des opérateurs CONTAINS et OMITS avec les champs AnV se produit lorsque zéro est la longueur réelle de l'un des opérandes.
Dans les exemples suivants, le champ Z a zéro comme longueur réelle, non pas les champs X et Y :
Expressions : |
Résultat |
---|---|
Z CONTAINS Y |
FALSE |
X CONTAINS Z |
TRUE |
Z CONTAINS Z |
TRUE |
Z OMITS Y |
TRUE |
X OMITS Z |
FALSE |
Z OMITS Z |
FALSE |
La seule différence dans l'évaluation de l'expression suivante se produit lorsque x a zéro comme longueur réelle :
x LIKE mask ...
Dans l'exemple suivant, l'instance de champ Z a zéro comme longueur réelle :
Z LIKE mask ...
Cette expression ne produit TRUE comme résultat de l'évaluation que lorsque le masque est constitué exclusivement de symboles de pourcentage ('%').
Notez qu'aucun autre masque ne peut avoir une chaîne vide comme évaluation. Même le masque dans l'expression suivante a comme longueur 1, et l'expression produit donc FALSE comme évaluation :
Z LIKE ''
Comme pour les champs de type An, les opérations sont évaluées en supposant que l'opérande le plus court est rempli de blancs.
Par conséquent, même un champ AnV vide, Z, est comparé en tant que champ composé de blancs.
Dans les exemples suivants, Z est une instance de champ AnV vide et X est une instance de champ AnV qui n'est pas vide et qui contient des caractères non blancs.
Expressions : |
Résultat |
---|---|
Z EQ Z Z GE Z Z LE Z |
TRUE |
Z NE Z Z LT Z Z GT Z |
FALSE |
Z EQ X |
FALSE |
Z NE X |
TRUE |
Z LT X |
TRUE |
Z GT X |
FALSE |
Z LE X |
TRUE |
Z GE X |
FALSE |
X EQ Z |
FALSE |
X NE Z |
TRUE |
X LT Z |
FALSE |
X GT Z |
TRUE |
X LE Z |
FALSE |
X GE Z |
TRUE |
DECODE alphafield (value 'result'...
L'utilisation d'un champ An ou AnV avec la fonction DECODE a comme résultat le type An, tant que la partie résultat des paires valeur-résultat est fournie en tant que constante. (Les constantes sont de type An).
Il faut prendre en compte trois situations lors de l'utilisation de l'opérateur d'affectation avec le format AnV : le type de données AnV du côté droit uniquement, le type de données AnV des deux côtés, et le type de données AnV du côté gauche uniquement.
fld/An = AnV_type_expression;
fld/AnV = AnV_type_expression;
fld/AnV = An_type_expression;
WebFOCUS |