Diretrizes Adicionais de SQLEXEC
Observe as seguintes diretrizes SQLEXEC:
-
Até 20 procedimentos armazenados ou consultas podem ser executados por entrada
TABLEouMAP. Eles são executados na ordem listada na instrução do parâmetro. -
Um log-in no banco de dados feito pelo usuário do Oracle GoldenGate deve preceder a cláusula
SQLEXEC. Use o parâmetroSOURCEDBeUSERIDALIASno arquivo de parâmetros Extract ou o parâmetroTARGETDBeUSERIDALIASno arquivo de parâmetros Replicat, conforme necessário para o tipo de banco de dados e o método de autenticação configurado. -
O SQL é executado pelo usuário do Oracle GoldenGate. Este usuário deve ter o privilégio para executar procedimentos armazenados e chamar procedimentos fornecidos pelo RDBM.
-
As operações de banco de dados em um procedimento armazenado ou consulta são submetidas a commit no mesmo contexto da transação original.
-
Não use
SQLEXECpara atualizar o valor de uma coluna de chave primária. SeSQLEXECfor usado para atualizar o valor de uma coluna de chave, o processo Replicat não poderá executar uma operação subsequente de atualização ou exclusão, porque o valor da chave original estará indisponível. Se um valor de chave precisar ser alterado, você poderá mapear o valor de chave original para outra coluna e, em seguida, especificar essa coluna com a opçãoKEYCOLSdo parâmetroTABLEouMAP. -
Para Db2, o Oracle GoldenGate usa a função
SQLExecDirectODBC para executar uma instrução SQL dinamicamente. Isso significa que o servidor de banco de dados conectado deve ser capaz de preparar a instrução dinamicamente. O ODBC prepara a instrução SQL toda vez que ela é executada (no intervalo solicitado). Normalmente, isso não apresenta um problema para os usuários do Oracle GoldenGate. Consulte a documentação do IBM Db2 para obter mais informações. -
Todos os nomes de objetos em uma instrução
SQLEXECdevem ser totalmente qualificados com os nomes de duas ou três partes, conforme apropriado para o banco de dados. -
Todos os objetos que são afetados por um procedimento armazenado ou consulta
SQLEXECdevem existir com as estruturas corretas antes da execução da SQL. Consequentemente, a DDL nesses objetos que afetam a estrutura (comoCREATEouALTER) deve ocorrer antes da execução deSQLEXEC. -
Todos os objetos afetados por uma instrução
SQLEXECstand-alone devem existir antes do início dos processos do Oracle GoldenGate. Por causa disso, o suporte a DDL deve ser desativado para esses objetos; caso contrário, as operações DDL poderão alterar a estrutura ou excluir o objeto antes que o procedimentoSQLEXECou a consulta seja executada nele.