@DBFUNCTION
@DBFUNCTION é uma função de conversão de coluna introduzida no Oracle GoldenGate 26ai. Ele fornece um mapeamento de coluna para uma função de banco de dados que é executada no banco de dados ao extrair uma operação DML. Isso é útil para aplicativos que estão rastreando o timestamp do banco de dados, operações sensíveis ao tempo ou carregamentos de ETL nos quais o Tempo de Aplicação da operação DML no banco de dados é necessário. A função de banco de dados deve existir dentro do banco de dados e o usuário do Replicat deve ter privilégios para executá-la. Para o Oracle AI Database, essa função está disponível para todos os Replicats. Para bancos de dados não Oracle, essa função está disponível para Replicat no modo clássico, Replicat paralelo e Replicat coordenado.
Consulte também Native Database Embedding with @DBFUNCTION
Limitações
-
A função de banco de dados usada pelo
@DBFUNCTIONnão permite coluna como argumentos. No entanto, argumentos/constantes estáticos são suportados.Por exemplo, o seguinte argumento é suportado:
TO_CHAR(SYSTIMESTAMP, 'SSSSS.FF')Se você quiser mapear esse argumento (
to_char) com@dbfunction, ele poderá ser feito da seguinte forma:col1 = @dbfunction('TO_CHAR(SYSTIMESTAMP, ''SSSSS.FF'')')Se a string mapeada para
@dbfunctioncontiver aspas simples ', ela precisará ser gravada como '' para ser analisada corretamente. -
@DBFUNCTIONnão pode ser mapeado para colunas-chave. -
@DBFUNCTIONnão pode ser usado como um argumento incluindo dentro de:-
Cláusula
FILTERouWHERE -
SQLEXEC -
Outras funções de conversão de colunas
-
Outro
@DBFUNCTION
-
Exemplo
O exemplo a seguir mostra o uso do @DBFUNCTION para determinar o timestamp do sistema para a tabela ORDERS.
MAP OE.ORDERS, TARGET OE.ORDERS, COLMAP (USEDEFAULTS, TS = @DBFUNCTION('SYSTIMESTAMP'))