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:
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:
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.
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.
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.
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. |
Jeder Spalte in der HOLD-Datei wird ein Name zugewiesen:
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:
WebFOCUS |