Temporäre DBMS-Tabellen als HOLD-Dateien verwenden

In diesem Abschnitt:

Vorgehensweise:

Referenz:

Sie können eine Reportausgabedatei (d.h. eine HOLD-Datei) als eine temporäre systemeigene DBMS-Tabelle erstellen. Dabei wird die Leistungsfähigkeit verbessert, indem die gesamte Reportoperation auf dem DBMS-Server bleibt, und nicht Daten auf Ihren Rechner heruntergeladen und dann wieder auf den DBMS-Server hochgeladen werden.

Wenn Sie beispielsweise die Reportausgabe zur sofortigen Verwendung durch eine andere Prozedur temporär speichern, sparen Sie sich das Übertragen der zwischenzeitlichen Daten auf Ihren Rechner, wenn Sie sie als temporäre Tabelle speichern und keine standardmäßige HOLD-Datei erstellen.

Die temporären Tabellenspalten werden aus den folgenden Reportelementen erstellt

außer denen, für die NOPRINT angegeben wurde.

Die temporäre Tabelle, die Sie mit Ihrem Report erstellen, hat denselben Datenquellentyp (d.h. dasselbe DBMS) wie die Datenquelle, mit der Sie den Report erstellen. Falls die Datenquelle, mit der Sie den Report erstellt haben, mehrere Tabellen enthält, müssen alle denselben Datenquellentyp haben und sich auf derselben Instanz des DBMS-Servers befinden.

Sie können unterschiedliche Typen von Tabellenpersistenz wählen.

Sie können Extrahierungsdateien mit den folgenden Adaptern als systemeigene DBMS-Tabellen erstellen:


Nach oben

x
Syntax: Die Reportausgabe mit Befehlen als systemeigene temporäre Tabelle speichern

Die Syntax für das Speichern der Reportausgabe als systemeigene temporäre DBMS-Tabelle ist

ON TABLE HOLD [AS filename] FORMAT SAME_DB [PERSISTENCE persistValue]

Hierbei gilt:

filename
Gibt den Namen der HOLD-Datei an. Falls Sie AS filename weglassen, ist der Name der temporären Tabelle per Default "HOLD".

Da nachfolgende HOLD-Befehle vorherige HOLD-Dateien immer überschreiben, wird empfohlen, in jeder Anfrage einen Namen anzugeben, um die extrahierten Daten in einer separaten Datei zu speichern, wodurch verhindert wird, dass ältere Dateien von neueren Dateien überschrieben werden.

PERSISTENCE
Gibt die Tabellenpersistenz und die zugehörigen Tabelleneigenschaften an. Ist optional für die DBMS, die veränderliche Tabellen unterstützen; für alle anderen jedoch erforderlich. Weitere Informationen über die Unterstützung von veränderlichen Tabellen für bestimmte DBMS finden Sie unter Eigenschaften temporärer Tabellen für SAME_DB-Persistenzwerte und in der Dokumentation Ihres DBMS-Anbieters.
persistValue
Ist eines des Folgenden:
VOLATILE
Gibt an, dass die Tabelle lokal für die DBMS-Session besteht. Es wird automatisch ein temporäres Synonym (eine Masterdatei und Zugriffsdatei) erzeugt. Es läuft ab, wenn die Serversession endet.

Dies ist die Default-Persistenzeinstellung für alle DBMS, die veränderliche Tabellen unterstützen.

Informationen über die Unterstützung von veränderlichen Tabellen sowie von Persistenz und anderen Tabelleneigenschaften finden Sie unter Eigenschaften temporärer Tabellen für SAME_DB-Persistenzwerte und in der Dokumentation Ihres DBMS-Anbieters.

GLOBAL_TEMPORARY
Gibt an, dass die Definition der Tabelle für andere Datenbank-Sessions und Benutzer sichtbar ist, die Daten jedoch nicht. Es wird automatisch ein permanentes Synonym (eine Masterdatei und Zugriffsdatei) erzeugt.

Informationen über die Unterstützung der globalen Temporäreinstellung sowie von Persistenz und anderen Tabelleneigenschaften für bestimmte DBMS finden Sie unter Eigenschaften temporärer Tabellen für SAME_DB-Persistenzwerte und in der Dokumentation Ihres DBMS-Anbieters.

PERMANENT
Gibt an, dass eine reguläre permanente Tabelle erstellt wird. Es wird automatisch ein permanentes Synonym (eine Masterdatei und Zugriffsdatei) erzeugt.

Nach oben

x
Referenz: Eigenschaften temporärer Tabellen für SAME_DB-Persistenzwerte

Die folgende Aufstellung enthält zusätzliche Informationen über Persistenz und andere Eigenschaften für temporäre Tabellen unterschiedlicher Datenquellentypen, die für das HOLD-Format SAME_DB unterstützt werden.

DBMS

VOLATILE

GLOBAL_TEMPORARY

DB2

DB2 auf UNIX, Windows und DB2 für z/OS: eine veränderliche Tabelle wird mit dem Befehl DECLARE GLOBAL TEMPORARY TABLE und der Option ON COMMIT PRESERVE ROWS erstellt. Deklarierte globale temporäre Tabellen bleiben erhalten und sind nur in der aktuellen Session·(Verbindung) sichtbar. SESSION ist der Schemaname für alle deklarierten globalen temporären Tabellen.

DB2 Release 7.1 und neuer (nur für z/OS): eine globale temporäre Tabelle wird mit dem Befehl CREATE GLOBAL TEMPORARY TABLE erstellt. Die Definition einer erstellten globalen temporären Tabelle ist für andere Sessions sichtbar, die Daten sind es jedoch nicht. Die Daten werden am Ende jeder Transaktion gelöscht (COMMIT oder ROLLBACK-Befehl). Die Tabellendefinition bleibt nach Ende der Session erhalten.

Informix

Eine veränderliche Tabelle wird mit dem Befehl CREATE TEMP TABLE und der WITH NO LOG-Option erstellt. Die Definition und die Daten bleiben erhalten und sind nur in der aktuellen Session sichtbar.

Dieser Tabellentyp wird von Informix nicht unterstützt.

Microsoft SQL Server

Eine veränderliche Tabelle wird als lokale temporäre Tabelle erstellt, deren Namen ein #-Zeichen vorangestellt wird. Dementsprechend ist der Name einer veränderlichen Tabelle, die als HOLD-Datei verwendet·wird, der Name, der in der HOLD-Phrase angegeben wird (wobei ein #-Zeichen vorangestellt wird). Die Tabellendefinition und die Daten bleiben erhalten und sind nur in der aktuellen Session sichtbar.

Dem Namen einer globalen temporären Tabelle werden zwei #-Zeichen (##) vorangestellt. Dementsprechend ist der Name der globalen temporären Tabelle, die als HOLD-Datei verwendet·wird, der Name, der in der HOLD-Phrase angegeben ist (wobei zwei #-Zeichen (##) vorangestellt werden). Die Tabelle wird automatisch gelöscht, wenn die Session beendet wird, in der die Tabelle erstellt wurde, und andere Tasks nicht mehr auf sie verweisen. Die Tabellendefinition und die Daten sind für andere Sessions sichtbar.

MySQL

Eine veränderliche Tabelle wird mit dem Befehl CREATE TEMPORARY TABLE erstellt. Temporäre Tabellen bleiben nur in der aktuellen Session (Verbindung) erhalten und sichtbar. Falls eine temporäre Tabelle denselben Namen wie eine permanente Tabelle hat, wird die permanente Tabelle unsichtbar.

Dieser Tabellentyp wird von MySQL nicht unterstützt.

Oracle

Dieser Tabellentyp wird von Oracle nicht unterstützt.

Die Tabellendefinition ist in allen Sessions sichtbar. Die Daten der Tabelle jedoch nur in der Session, in der sie hinzugefügt wurden. Die Tabellendefinition bleibt für den gleichen Zeitraum erhalten wie die Definition einer regulären Tabelle.

Teradata

Eine veränderliche Tabellendefinition und deren Daten sind nur innerhalb der Session sichtbar, in der die Tabelle erstellt und die Daten eingefügt wurden. Eine veränderliche Tabelle wird mit der Option ON COMMIT PRESERVE ROWS erstellt.

Eine globale temporäre Tabelle bleibt solange erhalten wie eine permanente Tabelle. Die Definition ist in allen Sessions sichbar, die Daten jedoch nur in der Session, in der sie eingefügt wurden. Die globale temporäre Tabelle wird mit der Option ON COMMIT PRESERVE ROWS erstellt.



x
Spaltennamen in der HOLD-Datei

Jeder Spalte in der HOLD-Datei wird ein Name zugewiesen:

  1. Vom AS-Namen, der für die Spalte in der Reportanfrage angegeben wurde.
  2. Falls kein AS-Name angegeben wurde, wird der Name vom angegebenen Alias im Synonym zugewiesen. (Der Alias und der Spaltenname in der ursprünglichen relationalen Tabelle sind identisch.)
  3. In allen anderen Fällen wird der Name vom Feldnamen zugewiesen, der im Synonym angegeben ist.

Nach oben

x
Primärschlüssel und Indizes in der HOLD-Datei

Für die HOLD-Tabelle wird ein Primärschlüssel oder ein Index erstellt. Die Schlüssel- oder die Indexdefinition wird aus den Sortierschlüsseln (BY) des TABLE-Befehls erzeugt, außer bei Sortierschlüsseln, die nicht angezeigt werden (d.h. Sortierschlüssel, für die NOPRINT angegeben ist). Um zu bestimmen, ob ein Primärschlüssel oder ein Index erstellt wird:

  1. Falls diese Sortierschlüssel eindeutig sind und keine Nullen erlauben (d.h., dass die MISSING-Attributspalte nicht ausgewählt wurde oder auf OFF steht) und die DBMS Primärschlüssel für den Tabellentyp, der erstellt wird, unterstützt, wird ein Primärschlüssel erstellt.
  2. Falls diese Sortierschlüssel eindeutig sind, aber entweder
    1. manche Spalten Nullen erlauben.
    2. die DBMS Primärschlüssel für den Tabellentyp, der erstellt wird, nicht unterstützt, wird ein eindeutiger Index erstellt.
  3. Falls diese Sortierschlüssel nicht eindeutig sind, wird ein Index erstellt, der nicht eindeutig ist.
  4. Falls keine Sortierschlüssel angezeigt werden (d.h. keine Sortierschlüssel, bei denen NORPRINT nicht angegeben wurde), wird kein Primärschlüssel oder Index erstellt.

WebFOCUS