@DBFUNCTION
@DBFUNCTION ist eine Spaltenkonvertierungsfunktion, die in Oracle GoldenGate 26ai eingeführt wurde. Es stellt eine Spaltenzuordnung zu einer Datenbankfunktion bereit, die innerhalb der Datenbank ausgeführt wird, wenn ein DML-Vorgang ausgeführt wird. Dies ist hilfreich für Anwendungen, die den Datenbankzeitstempel, zeitkritische Vorgänge oder ETL-Ladevorgänge verfolgen, wenn die Apply-Zeit des DML-Vorgangs in der Datenbank benötigt wird. Die Datenbankfunktion muss in der Datenbank vorhanden sein, und der Replicat-Benutzer muss über die entsprechenden Berechtigungen verfügen. Für Oracle AI Database ist diese Funktion für alle Replicats verfügbar. Für Nicht-Oracle-Datenbanken ist diese Funktion für Replicat im klassischen Modus, im parallelen Replicat und im koordinierten Replicat verfügbar.
Siehe auch Native Database Embedding with @DBFUNCTION
Einschränkungen
-
Die von
@DBFUNCTIONverwendete Datenbankfunktion lässt keine Spalte als Argumente zu. Statische Argumente/Konstanten werden jedoch unterstützt.Beispiel: Das folgende Argument wird unterstützt:
TO_CHAR(SYSTIMESTAMP, 'SSSSS.FF')Wenn Sie dieses Argument (
to_char) mit@dbfunctionmappen möchten, können Sie folgendermaßen vorgehen:col1 = @dbfunction('TO_CHAR(SYSTIMESTAMP, ''SSSSS.FF'')')Wenn die Zeichenfolge, die
@dbfunctionzugeordnet ist, einfache Anführungszeichen ' enthält, muss sie als '' geschrieben werden, damit sie korrekt geparst wird. -
@DBFUNCTIONkann Schlüsselspalten nicht zugeordnet werden. -
@DBFUNCTIONkann nicht als Argument verwendet werden, einschließlich:-
Klausel
FILTERoderWHERE -
SQLEXEC -
Weitere Spaltenkonvertierungsfunktionen
-
Weitere
@DBFUNCTION
-
Beispiel
Das folgende Beispiel zeigt, wie Sie @DBFUNCTION verwenden, um den Systemzeitstempel für die Tabelle ORDERS zu bestimmen.
MAP OE.ORDERS, TARGET OE.ORDERS, COLMAP (USEDEFAULTS, TS = @DBFUNCTION('SYSTIMESTAMP'))