@DBFUNCTION
@DBFUNCTION
は、Oracle GoldenGate 23aiで導入された列変換関数です。DML操作の実行時にデータベース内で実行されるデータベース関数への列マッピングを提供します。これは、データベース内のDML操作の適用時間が必要なデータベース・タイムスタンプ、時間が重視される操作またはETLロードを追跡するアプリケーションに役立ちます。データベース関数がデータベース内に存在する必要があり、Replicatユーザーにはそれを実行する権限が必要です。Oracleデータベースの場合、この関数はすべてのReplicatで使用できます。Oracle以外のデータベースの場合、この関数は、クラシック・モードのReplicat、パラレルReplicatおよび調整Replicatで使用できます。
制限事項
-
@DBFUNCTION
で使用されるデータベース関数は、列を引数として許可しません。ただし、静的引数/定数はサポートされています。たとえば、次の引数がサポートされています:TO_CHAR(SYSTIMESTAMP, 'SSSSS.FF')
この引数(
to_char
)を@dbfunction
にマップする場合は、次のように実行できます:col1 = @dbfunction('TO_CHAR(SYSTIMESTAMP, ''SSSSS.FF'')')
@dbfunction
にマップされた文字列に一重引用符'
が含まれている場合は、正しく解析されるように''
として記述する必要があります。 -
@DBFUNCTION
はキー列にマップできません。 -
@DBFUNCTION
は、次を含む引数として使用できません:-
FILTER
またはWHERE
句 -
SQLEXEC
-
その他の列変換関数
-
別の
@DBFUNCTION
-
例
@DBFUNCTION
を使用して、ORDERS
表のシステム・タイムスタンプを判別する方法を示しています。MAP OE.ORDERS, TARGET OE.ORDERS, COLMAP (USEDEFAULTS, TS = @DBFUNCTION('SYSTIMESTAMP'))