Eine strukturierte HOLD-Datei erstellen

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.


Nach oben

x
Syntax: Strukturierte HOLD-Dateien für eine Anfrage aktivieren
ON TABLE SET EXTRACT {ON|*|OFF}

Hierbei gilt:

ON
Aktiviert strukturierte HOLD-Dateien für diese Anfrage und extrahiert alle Felder, die in der Anfrage genannt werden.
*
Aktiviert strukturierte HOLD-Dateien für diese Anfrage und gibt an, dass ein Block mit Extrahierungsoptionen folgt. Sie können beispielsweise bestimmte Felder aus der strukturierten HOLD-Datei ausschließen. Informationen hierzu finden Sie unter Optionen für das Erzeugen von strukturierten HOLD-Dateien angeben.
OFF
Deaktiviert strukturierte HOLD-Dateien für diese Anfrage. OFF ist der Defaultwert.

Nach oben

x
Syntax: Eine strukturierte HOLD-Datei erstellen

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:

name
Ist der Name der HOLD-Datei. Der Name ist, wenn er weggelassen wird, per Default HOLD.
FORMAT
Ist ALPHA, BINARY oder FOCUS.

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

Nach oben

x
Syntax: Optionen für das Erzeugen von strukturierten HOLD-Dateien angeben

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:

EXCLUDE=(fieldname1, fieldname2, fieldname3,..., fieldnamen)
Schließt die angegebenen Felder aus der HOLD-Datei aus.
,$
Ist die für das Begrenzen von Elementen im Extrahierungsblock erforderliche Syntax.
ALL
Enthält alle realen Felder und alle DEFINE-Felder, die verwendet werden, um die Anfrage auszuführen.
EXPLICIT
Enthält nur die realen Felder und DEFINE-Felder aus der Anzeigeliste oder der Auflistung BY-Sortierfeld. DEFINE-Felder, auf die nicht explizit verwiesen wird und Felder, die verwendet werden, um DEFINEs zu überprüfen, sind nicht enthalten.
ENDEXTRACT
Beendet die Extrahierungs-Utility



Beispiel: Eine strukturierte HOLD-Datei im ALPHA-Format herstellen
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


Beispiel: Eine strukturierte HOLD-Datei im FOCUS-Format erstellen
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, $


Beispiel: Eine strukturierte HOLD-Datei wiederherstellen

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


Beispiel: Felder aus strukturierten HOLD-Dateien ausschließen

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, $

Nach oben

x
Referenz: Elemente, die in einer strukturierten HOLD-Datei enthalten sind

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:


Nach oben

x
Referenz: Elemente, die in einer strukturierten HOLD-Datei nicht enthalten sind

Nach oben

x
Referenz: Hinweise zu Struktur und Verhalten

Hinweise zur Struktur

Hinweise zur SQL-Optimierung

BY/ACROSS/FOR-Hinweise

Hinweise zur Formatierung

DBA-Hinweise

Extrahierungsdateien wiederherstellen


WebFOCUS