Cómo:
Referencia: |
Los archivos HOLD estructurados facilitan la migración de orígenes de datos e informes entre sistemas operativos.
Otros formatos HOLD capturan datos desde las fuentes originales y pueden mantener algunos elementos estructurales implícitos desde la propia solicitud. Sin embargo, no propagan la mayor parte de la información sobre las fuentes de datos originales a las que se accedió ni sus relaciones internas al archivo máster HOLD o sus orígenes de datos. Sin embargo, los archivos HOLD estructurados extraen los datos a una estructura paralela a las fuentes de datos originales. Posteriores solicitudes usando el archivo HOLD pueden usar esas relaciones de datos guardadas para recrear los mismos tipos de relaciones en otros entornos o en otros tipos de orígenes de datos.
Un archivo HOLD estructurado se puede crear en formato ALPHA, BINARY o FOCUS:
En todos los casos el archivo HOLD contiene todos los segmentos originales necesarios para el informe completo basado en la propia solicitud TABLE. Sea cual sea el comando de visualización usada en la solicitud original (PRINT, LIST, SUM, COUNT), el archivo HOLD estructurado se crea como si la solicitud utilizara PRINT. Se pasa por alto el paso de agregación.
El archivo HOLD contiene o todos los campos en la estructura identificada por la solicitud que se usan para cumplir con la solicitud, o todos los campos de visualización y campos BY. El archivo no contiene campos DEFINE que no hayan sido especificamente referenciados en la solicitud. Sí contiene todos los campos necesarios para evaluar cualquier campo DEFINE al que se haya hecho referencia en la solicitud.
Los archivos HOLD estructurados sólo están admitidos para comandos TABLE y TABLEF. Se pueden crear en cualquier sitio donde esté admitido un archivo HOLD. Debe activar los archivos HOLD estructurados en una solicitud específica al emitir el comando ON TABLE SET EXTRACT en la solicitud antes de crear el archivo HOLD estructurado.
ON TABLE SET EXTRACT {ON|*|OFF}
donde:
Antes de emitir el comando HOLD, active los archivos HOLD estructurados para la solicitud mediante el comando ON TABLE SET EXTRACT descrita en Cómo Activar archivos HOLD estructurados para una solicitud. Después emita el comando HOLD para crear el archivo HOLD estructurado:
[ON TABLE] {HOLD|PCHOLD} [AS name] FORMAT {ALPHA|BINARY|FOCUS}
donde:
Nota: Puede emitir un comando SET para establecer el formato HOLD por defecto a ALPHA o a BINARY:
SET HOLDFORMAT=ALPHA SET HOLDFORMAT=BINARY
Para especificar opciones para crear la extracción, y como resultado, excluir campos específicos, utilice la opción * del comando SET EXTRACT:
ON TABLE SET EXTRACT * EXCLUDE = (fieldname1, fieldname2, fieldname3 , ..., fieldnamen),$ FIELDS={ALL|EXPLICIT},$ ENDEXTRACT ON TABLE HOLD AS name FORMAT {ALPHA|BINARY|FOCUS}
donde:
TABLE FILE EMPLOYEE PRINT LAST_NAME FIRST_NAME JOBCODE ED_HRS BY DEPARTMENT BY HIGHEST SALARY ON TABLE SET EXTRACT ON ON TABLE HOLD FORMAT ALPHA END
Esta solicitud genera el siguiente archivo máster HOLD:
FILENAME=HOLD , SUFFIX=FIX , $ SEGMENT=EMPINFO, SEGTYPE=S0, $ FIELDNAME=RECTYPE, ALIAS=R, USAGE=A3, ACTUAL=A3, $ FIELDNAME=LAST_NAME, ALIAS='LN', USAGE=A15, ACTUAL=A15, $ FIELDNAME=FIRST_NAME, ALIAS='FN', USAGE=A10, ACTUAL=A10, $ FIELDNAME=DEPARTMENT, ALIAS='DPT', USAGE=A10, ACTUAL=A10, $ FIELDNAME=ED_HRS, ALIAS='OJT', USAGE=F6.2, ACTUAL=A06, $ SEGMENT=PAYINFO, SEGTYPE=S0, PARENT=EMPINFO, $ FIELDNAME=RECTYPE, ALIAS=1, USAGE=A3, ACTUAL=A3, $ FIELDNAME=SALARY, ALIAS='SAL', USAGE=D12.2M, ACTUAL=A12, $ FIELDNAME=JOBCODE, ALIAS='JBC', USAGE=A3, ACTUAL=A03, $
Fíjese que el campo RECTYPE generado por los archivos HOLD estructurados ALPHA o BINARY. Cada registro en el archivo HOLD comienza por RECTYPE para indicar el segmento al que pertenecía en la estructura original. El segmento raíz tiene RECTYPE=R. Los RECTYPE para otros segmentos son números secuenciales asignados de arriba a abajo, de izquierda a derecha.
A continuación verá los primeros registros en el archivo HOLD:
R STEVENS ALFRED PRODUCTION 25.00 1 11000.00A07 1 10000.00A07 R SMITH MARY MIS 36.00 1 13200.00B14 R JONES DIANE MIS 50.00 1 18480.00B03 1 17750.00B02 R SMITH RICHARD PRODUCTION 10.00 1 9500.00A01 1 9050.00B01
TABLE FILE EMPLOYEE PRINT LAST_NAME FIRST_NAME JOBCODE ED_HRS BY DEPARTMENT BY HIGHEST SALARY ON TABLE SET EXTRACT ON ON TABLE HOLD FORMAT FOCUS END
Esta solicitud genera el siguiente archivo máster HOLD:
FILENAME=HOLD , SUFFIX=FOC , $ SEGMENT=EMPINFO, SEGTYPE=S0, $ FIELDNAME=LAST_NAME, ALIAS='LN', USAGE=A15, $ FIELDNAME=FIRST_NAME, ALIAS='FN', USAGE=A10, $ FIELDNAME=DEPARTMENT, ALIAS='DPT', USAGE=A10, $ FIELDNAME=ED_HRS, ALIAS='OJT', USAGE=F6.2, $ SEGMENT=PAYINFO, SEGTYPE=S0, PARENT=EMPINFO, $ FIELDNAME=SALARY, ALIAS='SAL', USAGE=D12.2M, $ FIELDNAME=JOBCODE, ALIAS='JBC', USAGE=A3, $
La solicitud a continuación reconstituye la fuente de datos FOCUS original a partir del archivo HOLD estructurado creado en Cómo crear un archivo HOLD estructurado en formato ALPHA:
TABLE FILE HOLD PRINT LAST_NAME FIRST_NAME JOBCODE ED_HRS BY DEPARTMENT BY HIGHEST SALARY ON TABLE SET EXTRACT ON ON TABLE HOLD AS RECONST FORMAT FOCUS END
Esta solicitud genera el siguiente archivo máster:
FILENAME=RECONST , SUFFIX=FOC , $ SEGMENT=EMPINFO, SEGTYPE=S0, $ FIELDNAME=LAST_NAME, ALIAS='LN', USAGE=A15, $ FIELDNAME=FIRST_NAME, ALIAS='FN', USAGE=A10, $ FIELDNAME=DEPARTMENT, ALIAS='DPT', USAGE=A10, FIELDNAME=ED_HRS, ALIAS='OJT', USAGE=F6.2, $ SEGMENT=PAYINFO, SEGTYPE=S0, PARENT=EMPINFO, $ FIELDNAME=SALARY, ALIAS='SAL', USAGE=D12.2M, $ FIELDNAME=JOBCODE, ALIAS='JBC', USAGE=A3, $
La siguiente solicitud imprime la salida del informe:
TABLE FILE RECONST PRINT LAST_NAME FIRST_NAME JOBCODE ED_HRS BY DEPARTMENT BY HIGHEST SALARY END
La salida es:
DEPARTMENT SALARY LAST_NAME FIRST_NAME JOBCODE ED_HRS ---------- ------ --------- ---------- ------- ------ MIS $27,062.00 CROSS BARBARA A17 45.00 $25,775.00 CROSS BARBARA A16 45.00 $21,780.00 BLACKWOOD ROSEMARIE B04 75.00 $18,480.00 JONES DIANE B03 50.00 MCCOY JOHN B02 .00 $17,750.00 JONES DIANE B02 50.00 $13,200.00 SMITH MARY B14 36.00 $9,000.00 GREENSPAN MARY A07 25.00 $8,650.00 GREENSPAN MARY B01 25.00 PRODUCTION $29,700.00 BANNING JOHN A17 .00 $26,862.00 IRVING JOAN A15 30.00 $24,420.00 IRVING JOAN A14 30.00 $21,120.00 ROMANS ANTHONY B04 5.00 $16,100.00 MCKNIGHT ROGER B02 50.00 $15,000.00 MCKNIGHT ROGER B02 50.00 $11,000.00 STEVENS ALFRED A07 25.00 $10,000.00 STEVENS ALFRED A07 25.00 $9,500.00 SMITH RICHARD A01 10.00 $9,050.00 SMITH RICHARD B01 10.00
Esta solicitud excluye el campo SALARY usado para secuenciación:
TABLE FILE EMPLOYEE PRINT LAST_NAME FIRST_NAME JOBCODE ED_HRS BY DEPARTMENT BY HIGHEST SALARY ON TABLE SET EXTRACT * EXCLUDE=(SALARY),$ ENDEXTRACT ON TABLE HOLD FORMAT FOCUS END
Esta solicitud genera el siguiente archivo máster HOLD:
FILENAME=HOLD , SUFFIX=FOC , $ SEGMENT=EMPINFO, SEGTYPE=S0, $ FIELDNAME=LAST_NAME, ALIAS='LN', USAGE=A15, $ FIELDNAME=FIRST_NAME, ALIAS='FN', USAGE=A10, $ FIELDNAME=DEPARTMENT, ALIAS='DPT', USAGE=A10, $ FIELDNAME=ED_HRS, ALIAS='OJT', USAGE=F6.2, $ SEGMENT=PAYINFO, SEGTYPE=S0, PARENT=EMPINFO, $ FIELDNAME=JOBCODE, ALIAS='JBC', USAGE=A3, $
Los archivos HOLD estructurados contienen todos los casos de segmentos necesarios para completar la solicitud TABLE o TABLEF. Sea cual sea el comando de visualización usado en la solicitud original (PRINT, LIST, SUM o COUNT), el archivo HOLD estructurado se creará como si el comando fuera PRINT.
Para ser específicos, el archivo de extracción contiene los siguientes elementos:
Fíjese en que los campos referenciados múltiples veces en una solicitud están incluidos solamente una vez en el archivo HOLD.
Nota: Si un miembro de grupo se excluye específicamente (EXCLUDE) o no se hace referencia a él, su GROUP no se añade al archivo máster extraído (se aplica también a los grupos anidados y solapados). Si un GROUP y sus elementos se llaman en una solicitud, el GROUP no se añade como un campo real en el archivo HOLD extraído.
Notas estructurales
Notas de optimización de SQL
Notas BY/ACROSS/FOR
Notas de formateo
DEFINE FILE CAR COUNTRY/A25=COUNTRY; END
Notas DBA
Cómo reconstituir archivos de extracción
WebFOCUS |