Como un tipo alfanumérico, un campo AnV puede utilizarse en expresiones lógicas y aritméticas de la misma forma que se utiliza un tipo An
Nota: Como los campos AnV tienen dos bytes en exceso y se requiere procesamiento adicional para dividirlos, no se recomienda el formato AnV para usarlo en orígenes de datos no relacionales.
Si cualquiera de los operandos en una concatenación entre dos campos es un campo AnV, se usan las reglas alfanuméricas de longitud variable para realizar la concatenación:
La siguiente expresión arroja un formato AnV sólo cuando x tiene un formato AnV.
EDIT(x,mask)
La longitud real del resultado es el número de caracteres en mask que no sea '$'.
Tenga en cuenta que el resultado podría ser una longitud real de cero.
EDIT(x) se puede utilizar para convertir un campo AnV en un valor de número entero cuando x tiene un formato de AnV.
La única diferencia en la evaluación de los operadores CONTAINS y OMITS con campos AnV sucede cuando uno de los operandos tiene una longitud real de cero.
En los ejemplos que siguen, el campo Z tiene una longitud real de cero, pero X e Y no la tienen:
Expression |
Resultado |
---|---|
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 única diferencia en la evaluación de la expresión que sigue tiene lugar cuando x tiene una longitud real de cero:
x LIKE mask ...
En el siguiente ejemplo, el caso de campo Z tiene una longitud real de cero:
Z LIKE mask ...
Esta expresión evalúa el valor TRUE solamente si la máscara consiste exclusivamente de signos porcentuales ('%').
Tenga en cuenta que ninguna otra máscara puede evaluar en una cadena vacía. Incluso la máscara en la siguiente expresión tiene una longitud de uno y, por lo tanto, la expresión se evalúa como FALSE:
Z LIKE ''
Como en el caso de los campos del tipo An, las operaciones se evalúan partiendo del supuesto de que el operando más corto está aislado con espacios en blanco.
Por lo tanto, incluso un campo AnV vacío, Z, se compara como un campo que contiene todo espacios en blanco.
En los ejemplos que siguen, Z es un campo AnV vacío y X es un caso de campo AnV que no está vacío y que contiene caracteres que no son espacios en blanco:
Expression |
Resultado |
---|---|
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'...
El uso de un campo An o AnV con DECODE arroja un resultado del tipo An en la medida en que la parte result de los pares de valor-resultado se proporcionen como una constante. (Las constantes son del tipo An.)
Hay que tener en cuenta tres situaciones al utilizar el operador de asignación con el formato nV: el tipo de datos AnV, sólo en la parte derecha, el tipo de datos AnV, en ambos lados y el tipo de datos AnV, sólo en la parte izquierda.
fld/An = AnV_type_expression;
fld/AnV = AnV_type_expression;
fld/AnV = An_type_expression;
WebFOCUS |