如何计算 DDL 进行处理
了解 Oracle GoldenGate 参数中不同标准的处理顺序,以及提取和复制每个 DDL 的处理方式之间的差异。
提取 1。Extract 捕获 DDL 语句。
-
提取将备注(如果有)与主语句分开。
-
提取搜索
DDL参数。(此示例假定其存在。) -
提取搜索
IGNOREREPLICATES参数。如果存在,并且 Replicat 在此系统上生成了此 DDL,则 Extract 将忽略 DDL 语句。(此示例假定此系统上没有复制操作。) -
提取可确定 DDL 语句是否为
RENAME。如果是,则会在内部标记重命名。 -
提取将获取基本对象名称,如果存在,将获取派生对象名称。
-
如果语句是
RENAME,则 Extract 会将其更改为ALTER TABLE RENAME。 -
提取搜索
DDLOPTIONS REMOVECOMMENTS BEFORE参数。如果存在,则 Extract 会从 DDL 语句中删除注释,但会存储注释,以防存在使用INSTR或INSTRCOMMENTS的DDL INCLUDE或DDL EXCLUDE子句。 -
提取确定 DDL 范围:
MAPPED、UNMAPPED或OTHER:-
如果操作和对象类型支持映射,并且基本对象名称和/或派生对象名称(如果
RENAME)位于TABLE参数中,则为MAPPED。 -
如果操作和对象类型不支持映射,并且基本对象名称和/或派生对象名称(如果
RENAME)不在TABLE参数中,则为UNMAPPED。 -
否则,该操作将被标识为
OTHER。
-
-
提取会检查
INCLUDE和EXCLUDE子句的DDL参数,并评估这些子句中的DDL参数标准。所有选项的求值结果必须为TRUE,以便INCLUDE或EXCLUDE的求值结果为TRUE。将出现以下情况:-
如果
EXCLUDE子句的求值结果为TRUE,则 Extract 将放弃 DDL 语句并计算另一个 DDL 语句。在这种情况下,处理步骤将重新开始。 -
如果
INCLUDE子句的求值结果为TRUE,或者如果DDL参数没有任何INCLUDE或EXCLUDE子句,则 Extract 将包含 DDL 语句,并且处理逻辑将继续。
-
-
提取会搜索
DDLSUBST参数并评估INCLUDE和EXCLUDE子句。如果这些子句中的条件加起来为TRUE,则提取将执行字符串替换。提取会根据参数文件中的每个DDLSUBST参数评估 DDL 语句。对于所有真正的DDLSUBST规范,Extract 会按DDLSUBST参数在文件中列出的顺序执行字符串替换。 -
现在已处理
DDLSUBT,Extract 将搜索REMOVECOMMENTS AFTER参数。如果存在,则 Extract 会从 DDL 语句中删除注释。 -
提取搜索
DDLOPTIONS ADDTRANDATA。如果存在,并且操作为CREATE TABLE,则 Extract 将在表中发出ALTER TABLEnameADD SUPPLEMENTAL LOG GROUP命令。 -
提取会将 DDL 语句写入线索。