Concatenación universal

En esta sección:

Cómo:

Con la concatenación universal, puede recuperar datos de orígenes de datos distintos en una sola solicitud; de esa manera, todos los datos, independientemente de su origen, parecen proceder de un solo archivo. La frase MORE puede concatenar todo tipo de orígenes de datos (FOCUS, DB2, IMS, VSAM), siempre y cuando compartan campos correspondientes con el mismo formato. Puede utilizar las pruebas de selección WHERE e IF en conjunto con MORE. Para obtener información relacionada, consulte Cómo seleccionar registros para su informe.

Para utilizar MORE, debe dividir la solicitud en:

Durante la recuperación, los datos de cada origen de datos se reúnen por turno, luego se clasifican todos los datos y la salida se formatea tal como se especifica en la solicitud principal.


Principio de página

x
Sintaxis: Cómo Concatenar orígenes de datos

La frase MORE, accesible en comandos TABLE y MATCH, especifica cómo concatenar datos desde orígenes con archivos máster distintos.

{TABLE|MATCH}  FILE file1main request 
MORE
FILE file2 
  subrequest 
MORE
FILE file3 
  subrequest 
MORE
   .
   .
   .
{END|RUN}

donde:

TABLE|MATCH

Empieza la solicitud que concatena los orígenes de datos.

file1

Es el nombre del primer origen de datos.

main request

Es la solicitud, sin END o RUN, que recupera el primer origen de datos y define los campos de datos, los criterios de clasificación y el formato de salida de todos los datos. Los criterios WHERE e IF en la solicitud principal se aplican exclusivamente a file1.

Cuando concatena archivos en el comando TABLE, también puede definir valores calculados para el primer origen de datos.

MORE

Empieza la subsolicitud. No hay límite para el número de subsolicitudes, salvo por la memoria disponible.

FILE file2

Define a file2 como el segundo origen de datos por concatenar.

subrequest

Es una subsolicitud. Las subsolicitudes sólo pueden incluir frases WHERE e IF.

END|RUN

Finaliza la solicitud.



Ejemplo: Cómo concatenar orígenes de datos

Tanto el origen de datos EMPLOYEE como el EXPERSON contienen información sobre los empleados. Puede concatenar sus datos comunes en un solo archivo:

La siguiente solicitud anotada concatena los dos orígines de datos:

   DEFINE FILE EXPERSON 
1. EMP_ID/A9 = SSN;
   CURR_SAL/D12.2 = WAGE;
   END 
2. TABLE FILE EMPLOYEE
   PRINT CURR_SAL
   BY EMP_ID 
3. MORE
   FILE EXPERSON
   END
  1. La respuesta debe redistribuir los nombres de campo y los formatos en el origen de datos EXPERSON para que ocrrespondan con los que se usan en la solicitud principal.
  2. La solicitud principal da nombre al primer origen de datos en la concatenación, EMPLOYEE. También define los campos de impresión y clasificación de ambos orígenes de datos.
  3. La frase MORE inicia la subsolicitud que concatena el origen de datos siguiente, EXPERSON. No se permiten comandos de visualización en la subsolicitud. Los criterios IF y WHERE son los únicos componentes de informe permitidos en una subsolicitud.

Principio de página

x
Nombre de campo y correspondencia de formato

Todos los campos citados en la solicitud principal deben existir ya con los mismos nombres y formatos en todos los archivos concatenados, o bien deben reasignarse hacia dichos nombres y formatos mediante campos virtuales. Los campos mencionados incluyen aquellos utilizados en comandos COMPUTE, encabezados, frases de agregación, frases de clasificación y comandos PRINT, LIST, SUM, COUNT, WRITE o ADD.

Una correspondencia de formato correcta significa:

Usage Format Type

Correspondence

A

El tipo y la longitud del formato deben ser iguales.

I, F, D

El tipo de formato debe ser el mismo.

P

El tipo de formato y la escala deben ser iguales.

DATE (nuevo)

La información de formato (tipo, longitud, componentes y orden) debe corresponder siempre.

DATE (viejo)

Las opciones de edición deben ser las mismas.

DATE -TIME

La información de formato (tipo, longitud, componentes y orden) debe corresponder siempre.

Los campos de texto (TX) y los campos CLOB (si es que se admiten) no pueden concatenarse.



Ejemplo: Cómo hacer corresponder nombres de campo y formatos

El siguiente ejemplo concatena datos de los orígenes de datos EMPDATA y SALHIST.

   DEFINE FILE EMPDATA 
1. NEWID/A11=EDIT (ID,'999-99-9999');
   END
 
   DEFINE FILE SALHIST 
2. NEWID/A11=EDIT (ID,'999-99-9999');
   CSAL/D12.2M=OLDSALARY;
   END
  
3. TABLE FILE EMPDATA
   HEADING
   "EMPLOYEE SALARIES"
   " "
   PRINT CSAL
   BY NEWID 
4. WHERE CSAL GT 65000 
5. MORE
   FILE SALHIST 
6. WHERE OLDSALARY GT 65000
   END
  1. Define NEWID en el origen de datos EMPDATA con el mismo nombre y formato que el campo de clasificación mencionado en la solicitud principal.
  2. Define NEWID en el origen de datos SALHIST con el mismo nombre y formato que el campo de clasificación mencionado en la solicitud principal.
  3. La solicitud principal. Contiene todo el formato para el informe resultante y nombra el primer archivo que concatenar. Contiene también toda la información de impresión y clasificación. Los campos impresos y los campos de clasificación deben existir como campos reales o campos DEFINE en cada archivo.
  4. El criterio WHERE en la solicitud principal se aplica solamente al origen de datos EMPDATA.
  5. La frase MORE concatena el origen de datos SALHIST con el origen de datos EMPDATA.
  6. Este criterio WHERE se aplica solamente al origen de datos SALHIST. Tenga en cuenta que menciona un campo que no ha sido definido en el origen de datos EMPDATA.

La salida es:

EMPLOYEE SALARIES
  
  
  
NEWID
SALARY
000-00-0030
 $70,000.00
 $70,000.00
000-00-0070
 $83,000.00
 $83,000.00
 $79,100.00
000-00-0200
$115,000.00
$115,000.00
$102,500.00
 $89,500.00
000-00-0230
 $80,500.00
 $80,500.00
 $75,000.00
 $70,800.00
000-00-0300
 $79,000.00
 $79,000.00
 $75,000.00
 $70,000.00

Cuando concatena datos, los conjuntos de registros son simplemente archivos verticales adjuntos, no agrupados ni agregados. Por lo tanto, si existen campos de clasificación duplicados, aparecerán dos veces en la salida del informe.


WebFOCUS