Vorgehensweise:
Referenz: |
Strukturierte HOLD-Dateien erleichtern die Migration von Datenquellen und Reports zwischen Betriebsumgebungen.
Andere HOLD-Formate zeichnen Daten aus den ursprünglichen Quellen auf und behalten ggf. ein paar implizite strukturelle Elemente aus der Anfrage selbst bei. Sie geben jedoch die meisten Informationen über die ursprünglichen Datenquellen und ihre Beziehungen mit der HOLD-Masterdatei oder Datenquelle nicht weiter. Strukturierte HOLD-Dateien extrahieren jedoch die Daten in eine Struktur, die den ursprünglichen Datenquellen entspricht. Nachfolgende Anfragen, die an die HOLD-Datei gestellt werden, können diese beibehaltenen Datenbeziehungen verwenden, um dieselben Arten Datenbeziehungenen in anderen Umgebungen oder in anderen Datenquellentypen wiederherzustellen.
Eine strukturierte HOLD-Datei kann in den Formaten ALPHA, BINARY oder FOCUS erstellt werden:
Die HOLD-Datei enthält immer alle ursprünglichen Segmentinstanzen, die basierend auf der TABLE-Anfrage für einen vollständigen Report nötig sind. Unabhängig davon, welcher Anzeigebefehl in der ursprünglichen Anfrage verwendet wurde (PRINT, LIST, SUM, COUNT), wird die strukturierte HOLD-Datei so erstellt, als ob PRINT verwendet worden wäre. Aggregation wird ignoriert.
Die HOLD-Datei enthält entweder alle Felder in der Struktur, die in der Anfrage angegeben sind und verwendet werden, um die Anfrage zu erfüllen, oder alle Anzeigefelder und BY-Felder. Die Datei enthält keine DEFINE-Felder, auf die in der Anfrage nicht ausdrücklich verwiesen wird. Sie enthält alle Felder, die benötigt werden, um alle DEFINE-Felder zu überprüfen, auf die in der Anfrage verwiesen wird.
Strukturierte HOLD-Dateien werden nur von den Befehlen TABLE und TABLEF unterstützt. Sie können überall erstellt werden, wo HOLD-Dateien unterstützt werden. Sie müssen strukturierte HOLD-Dateien in einer bestimmten Anfrage aktivieren, indem Sie in der Anfrage den ON TABLE SET EXTRACT-Befehl ausgeben, bevor Sie die strukturierte HOLD-Datei erstellen.
ON TABLE SET EXTRACT {ON|*|OFF}
Hierbei gilt:
Aktivieren Sie, bevor Sie den HOLD-Befehl ausgeben, strukturierte HOLD-Dateien für die Anfrage, indem Sie den ON TABLE SET EXTRACT-Befehl ausgeben, der unter Strukturierte HOLD-Dateien für eine Anfrage aktivieren beschrieben ist. Geben Sie dann den HOLD-Befehl aus, um die strukturierte HOLD-Datei zu erstellen:
[ON TABLE] {HOLD|PCHOLD} [AS name] FORMAT {ALPHA|BINARY|FOCUS}
Hierbei gilt:
Hinweis: Sie können einen SET-Befehl ausgeben, um das Default-HOLD-Format entweder auf ALPHA oder BINARY einzustellen:
SET HOLDFORMAT=ALPHA SET HOLDFORMAT=BINARY
Verwenden Sie, um Optionen für die Extrahierung wie das Ausschließen bestimmter Felder anzugeben, die *-Option des SET EXTRACT-Befehls:
ON TABLE SET EXTRACT * EXCLUDE = (fieldname1, fieldname2, fieldname3 , ..., fieldnamen),$ FIELDS={ALL|EXPLICIT},$ ENDEXTRACT ON TABLE HOLD AS name FORMAT {ALPHA|BINARY|FOCUS}
Hierbei gilt:
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
Diese Anfrage erzeugt die folgende HOLD-Masterdatei:
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, $
Beachten Sie das RECTYPE-Feld, das für strukturierte HOLD-Dateien im ALPHA- oder BINARY-Format erzeugt wird. Jeder Datensatz in der HOLD-Datei fängt mit dem RECTYPE an, um anzuzeigen, zu welchem Segment er in der ursprünglichen Struktur gehört hat. Das Rootsegment hat RECTYPE=R. Die RECTYPEs der anderen Segmente sind sequentielle Nummern, die von oben nach unten und links nach rechts zugewiesen werden.
Im Folgenden sind die ersten paar Datensätze in der HOLD-Datei aufgelistet:
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
Diese Anfrage erzeugt die folgende HOLD-Masterdatei:
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, $
Die folgende Anfrage stellt die ursprüngliche FOCUS-Datenquelle aus der strukturierten HOLD-Datei wieder her, die in Eine strukturierte HOLD-Datei im ALPHA-Format herstellen erstellt wurde:
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
Diese Anfrage erzeugt die folgende Masterdatei:
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, $
Die folgende Anfrage druckt die Reportausgabe:
TABLE FILE RECONST PRINT LAST_NAME FIRST_NAME JOBCODE ED_HRS BY DEPARTMENT BY HIGHEST SALARY END
Die Ausgabe ist:
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
Diese Anfrage schließt das SALARY-Feld aus, das für die Erstellung der Sequenz verwendet wird.
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
Diese Anfrage erzeugt die folgende HOLD-Masterdatei:
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, $
Strukturierte HOLD-Dateien enthalten alle ursprünglichen Segmenteinstanzen, die für die TABLE- oder TABLEF-Anfrage benötigt werden. Unabhängig davon, welcher Anzeigebefehl in der ursprünglichen Anfrage verwendet wurde (PRINT, LIST, SUM oder COUNT), wird die strukturierte HOLD-Datei so erstellt, als ob PRINT verwendet worden wäre.
Die Extrahierungsdatei enthält die folgenden Elemente:
Beachten Sie, dass Felder, auf die in einer Anfrage mehrmals verwiesen wird, in der HOLD-Datei nur einmal vorkommen.
Hinweis: Wenn ein spezifisches Element der Gruppe ausgeschlossen ist (EXCLUDE) oder auf dieses nicht verwiesen wird, wird seine GROUP der Extrahierungsmasterdatei nicht hinzugefügt (dies gilt auch für eingebettete und überlappende Gruppen). Wenn eine GROUP und alle ihre Elemente in einer Anfrage genannt werden, wird die GROUP der Extrahierungsdatei HOLD nicht als reales Feld hinzugefügt.
Hinweise zur Struktur
Hinweise zur SQL-Optimierung
BY/ACROSS/FOR-Hinweise
Hinweise zur Formatierung
DEFINE FILE CAR COUNTRY/A25=COUNTRY; END
DBA-Hinweise
Extrahierungsdateien wiederherstellen
WebFOCUS |