Directrices SQLEXEC adicionales
Observe las siguientes directrices de SQLEXEC:
-
Se pueden ejecutar hasta 20 consultas o procedimientos almacenados por cada entrada
TABLEoMAP. Se ejecutan en el orden que se muestra en la sentencia parameter. -
Una conexión a la base de datos por parte del usuario de Oracle GoldenGate debe preceder a la cláusula
SQLEXEC. Utilice los parámetrosSOURCEDByUSERIDALIASen el archivo de parámetros Extract o los parámetrosTARGETDByUSERIDALIASen el archivo de parámetros Replicat, según sea necesario para el tipo de base de datos y el método de autenticación configurado. -
El usuario de Oracle GoldenGate ejecuta el SQL. Este usuario debe tener el privilegio para ejecutar procedimientos almacenados y llamar a procedimientos proporcionados por RDBM.
-
Las operaciones de base de datos dentro de un procedimiento o consulta almacenados se confirman en el mismo contexto que la transacción original.
-
No utilice
SQLEXECpara actualizar el valor de una columna de clave primaria. Si se utilizaSQLEXECpara actualizar el valor de una columna de clave, el proceso de Replicat no podrá realizar una operación de actualización o supresión posterior, ya que el valor de clave original no estará disponible. Si se debe cambiar un valor de clave, puede asignar el valor de clave original a otra columna y, a continuación, especificar esa columna con la opciónKEYCOLSdel parámetroTABLEoMAP. -
Para Db2, Oracle GoldenGate utiliza la función
SQLExecDirectde ODBC para ejecutar una sentencia SQL de forma dinámica. Esto significa que el servidor de base de datos conectado debe poder preparar la sentencia de forma dinámica. ODBC prepara la sentencia SQL cada vez que se ejecuta (en el intervalo solicitado). Normalmente, esto no presenta ningún problema a los usuarios de Oracle GoldenGate. Consulte la documentación de IBM Db2 para obtener más información. -
Todos los nombres de objeto de una sentencia
SQLEXECdeben estar totalmente cualificados con sus nombres de dos o tres partes, según corresponda para la base de datos. -
Todos los objetos que se ven afectados por un procedimiento o consulta almacenados
SQLEXECdeben existir con las estructuras correctas antes de la ejecución de SQL. Por lo tanto, el DDL en estos objetos que afectan a la estructura (comoCREATEoALTER) se debe producir antes de que se ejecuteSQLEXEC. -
Todos los objetos afectados por una sentencia
SQLEXECautónoma deben existir antes de que se inicien los procesos de Oracle GoldenGate. Debido a esto, el soporte de DDL debe estar desactivado para esos objetos; de lo contrario, las operaciones de DDL podrían cambiar la estructura o suprimir el objeto antes de que se ejecute en él el procedimientoSQLEXECo la consulta.