其他 SQLEXEC 准则
遵守以下 SQLEXEC 准则:
-
每个
TABLE或MAP项最多可以执行 20 个存储过程或查询。它们按参数语句中列出的顺序执行。 -
Oracle GoldenGate 用户的数据库登录必须位于
SQLEXEC子句之前。根据数据库类型和已配置的验证方法的需要,使用“提取”参数文件中的SOURCEDB和USERIDALIAS参数或“复制”参数文件中的TARGETDB和USERIDALIAS参数。 -
SQL 由 Oracle GoldenGate 用户执行。此用户必须具有执行存储过程和调用 RDBM 提供的过程的权限。
-
存储过程或查询中的数据库操作在与原始事务处理相同的上下文中提交。
-
请勿使用
SQLEXEC更新主键列的值。如果使用SQLEXEC更新键列的值,则复制进程将无法执行后续更新或删除操作,因为原始键值将不可用。如果必须更改键值,则可以将原始键值映射到另一列,然后使用TABLE或MAP参数的KEYCOLS选项指定该列。 -
对于 Db2,Oracle GoldenGate 使用 ODBC
SQLExecDirect函数动态执行 SQL 语句。这意味着连接的数据库服务器必须能够动态准备语句。ODBC 会在每次执行 SQL 语句时(按请求的时间间隔)对其进行准备。通常,这不会给 Oracle GoldenGate 用户带来问题。有关更多信息,请参见 IBM Db2 文档。 -
SQLEXEC语句中的所有对象名称都必须使用其两部分或三部分名称(对于数据库而言)进行完全限定。 -
在执行 SQL 之前,受
SQLEXEC存储过程或查询影响的所有对象都必须具有正确的结构。因此,在SQLEXEC执行之前,必须对这些影响结构的对象(例如CREATE或ALTER)执行 DDL。 -
在 Oracle GoldenGate 进程启动之前,受独立
SQLEXEC语句影响的所有对象都必须存在。因此,必须对这些对象禁用 DDL 支持;否则,DDL 操作可能会在对对象执行SQLEXEC过程或查询之前更改结构或删除该对象。