Matrices dinámicas

Las matrices dinámicas correlacionan la estructura de registros de archivo de InfoSphere DataStage con datos de serie de caracteres. Cualquier serie de caracteres puede ser una matriz dinámica. Una matriz dinámica es una serie de caracteres que contiene elementos que son subseries separadas por delimitadores. En el nivel superior, estos elementos son campos separados por marcas de campo ( F ) (ASCII 254). Cada campo puede contener valores separados por marcas de valor ( V ) (ASCII 253). Cada valor puede contener subvalores separados por marcas de subvalor ( S ) (ASCII 252).

Las matrices dinámicas se utilizan con frecuencia para almacenar datos leídos de un registro de archivo de InfoSphere DataStage o grabados en él. Sin embargo, InfoSphere DataStage BASIC incluye recursos para manipular los elementos de matrices dinámicas que hacen de estas un tipo de datos de gran utilidad para procesar información jerárquica independientemente de los archivos de InfoSphere DataStage.

El número de campos, valores o subvalores de una matriz dinámica solo está limitado por la cantidad de memoria disponible. Los campos, valores y subvalores que contienen una serie vacía se representan mediante dos marcas de campo, marcas de valor o marcas de subvalor consecutivas, respectivamente.

La serie de caracteres siguiente es una matriz dinámica con dos campos:

TOMSDICKSHARRYVBETTYSSUESMARYFJONESVSMITH

Los dos campos son:

TOMSDICKSHARRYVBETTYSSUESMARY

y:

JONESVSMITH

Conceptualmente, esta matriz dinámica tiene un número de campos infinito, y todos menos los dos primeros están vacíos. Las referencias realizadas al tercer o cuarto campo, por ejemplo, devuelven una serie vacía.

El primer campo tiene dos valores:

TOMSDICKSHARRY

y:

BETTYSSUESMARY

El primer valor tiene tres subvalores: TOM, DICK y HARRY. El segundo valor también tiene tres subvalores: BETTY, SUE y MARY.

El segundo campo tiene dos valores: JONES y SMITH. Cada valor tiene un subvalor: JONES y SMITH.

La serie de caracteres siguiente:

NAME AND ADDRESS

se puede considerar una matriz dinámica que contiene un campo, un valor y un subvalor, siendo todos ellos: NAME AND ADDRESS.

La serie de caracteres siguiente se puede considerar una matriz dinámica que contiene dos campos:

JONESVSMITHVBROWNF$1.23VV$2.75

El primer campo tiene tres valores: JONES, SMITH y BROWN. El segundo campo tiene tres valores: $1.23, una serie vacía y $2.75.

Las funciones intrínsecas y los operadores permiten el acceso, la modificación, la adición y la eliminación de subvalores, valores y campos concretos.

Puede crear una matriz dinámica de dos modos: considerándola una concatenación de sus campos, valores y subvalores; o delimitando los elementos de la matriz dinámica mediante corchetes angulares, siguiendo esta sintaxis:

nombre.matriz < númcampo , númvalor , númsubvalor >

Por ejemplo, para crear la matriz dinámica A como:

JONESVSMITHF1.23S20V2.50S10

puede especificar:

A="JONES":@VM:"SMITH":@FM:1.23:@SM:20:@VM:2.50:@SM:10

o puede especificar:

A = ""
A<1,1> = "JONES"
A<1,2> = "SMITH"
A<2,1,1> = 1.23
A<2,1,2> = 20
A<2,2,1> = 2.50
A<2,2,2> = 10

El ejemplo tiene dos campos. El primer campo tiene dos valores, y el segundo campo tiene dos valores. El primer valor del segundo campo tiene dos subvalores, y el segundo valor del segundo campo también tiene dos subvalores.

Debe utilizar las sentencias siguientes para declarar que el primer campo contiene los dos valores JONES y SMITH:

A = ""
A<1,1> = "JONES"
A<1,2> = "SMITH"

La sentencia:

A = ""
A<1> = "JONES"

declara que el primer campo contiene únicamente JONES, sin ningún otro valor ni subvalor. Del mismo modo, la sentencia:

A<2,1> = 1.23

declara que el primer valor del segundo campo es 1.23, sin ningún subvalor. Las sentencias:

A<2,2,1> = 2.50
A<2,2,2> = 10

declaran que el segundo valor del segundo campo tiene dos subvalores, 2.50 y 10, respectivamente.