在 Oracle GoldenGate 输入中指定对象名称
在参数文件(如 TABLE 和 MAP 语句)、列转换函数、命令和其他输入中指定对象名称时,以下规则适用。
在 Windows 系统上的参数文件中指定文件系统路径名
在 Windows 系统上,如果文件系统路径名中任何目录的名称以数字开头,则在 Oracle GoldenGate 输入中列出该路径(例如参数文件或命令)时,必须使用正斜杠而不是反斜杠指定该路径。此要求可防止 Oracle GoldenGate 将名称解释为八进制转义序列。例如,以下路径包含一个名为 \2023 的目录,该目录将被解释为八进制序列 \202:
C:\deployments\ea
C:\deployments\north\ea
C:\deployments\north\2023\ea
上面的路径可以与正斜杠一起使用,如下所示:
C:/deployments/ea
C:/deployments/north/ea
有关更多信息,请参阅支持转义序列。
指定包含斜杠的名称
如果表名在其名称的任何部分包含正斜杠字符 (/),则必须将该名称组件括在双引号内,除非对象名来自 IBM i 平台。以下为一些示例:
"c/d"
"/a".b
a."b/"
如果名称包含未用双引号括起来的正斜杠,则 Oracle GoldenGate 会将其视为源自 IBM i 平台的名称(来自 i 数据库的 DB2)。名称中的正斜杠被解释为分隔符。
指定区分大小写的数据库对象名称
Oracle GoldenGate 支持区分大小写的名称。指定区分大小写的对象时,请遵循以下规则。
-
指定区分大小写的数据库中的对象名称,其大小写与用于将其存储在主机数据库中的对象名称相同。请记住,在某些数据库类型中,不同级别的数据库可能区分大小写,例如区分大小写的方案,但不区分大小写的表。如果数据库需要引号来强制实现区分大小写,请在限定名称中对每个区分大小写的对象加上引号。
正确:
TABLE "Sales"."ACCOUNT"不正确:
TABLE "Sales.ACCOUNT" -
Oracle GoldenGate 将不区分大小写的名称转换为映射时需要存储的名称的大小写。
表 9-17 概述了每个受支持的数据库对对象名称中区分大小写的支持。有关此类型的支持的详细信息,请参阅数据库文档。
表 17 每个数据库对象名的区分大小写
| 数据库 | 是否需要引号来强制实施区分大小写? | 无引号的对象名称 | 引用的对象名称 |
|---|---|---|---|
| DB2 | 是。使用引号区分区分区分大小写和不区分大小写。 | 不区分大小写,以大写形式存储 | 区分大小写,以混合大小写存储 |
MySQL (区分大小写的数据库) |
否
|
无影响 | 无影响 |
| Oracle AI 数据库 | 是。使用引号区分区分区分大小写和不区分大小写。 | 不区分大小写,以大写形式存储 | 区分大小写,以混合大小写存储 |
SQL Server (数据库创建时区分大小写) |
否 始终区分大小写,以混合大小写存储 |
无影响 |
无影响 |
SQL Server (数据库创建时不区分大小写) |
否 始终不区分大小写,以混合大小写存储 |
无影响 | 无影响 |
| Teradata | 否 始终不区分大小写,以混合大小写存储 |
无影响 | 无影响 |
注:对于所有支持的数据库,无论关联的对象名称是带引号还是不带引号,密码始终视为区分大小写。
区分区分区分大小写列名和文字列名
默认情况下,Oracle GoldenGate 遵循 SQL-92 规则来指定列名和文字。在 Oracle GoldenGate 参数文件、转换函数、用户出口和命令中,如果数据库需要用引号引起来支持区分大小写,则必须用双引号将区分大小写的列名括起来。例如:
"columnA"
数据库中不需要引号来强制区分大小写的列名必须指定为区分大小写的列名,因为它们存储在数据库中。例如:
ColumnA
文字必须用单引号引起来。在以下示例中,Product_Code 是 Oracle AI Database 中区分大小写的列名,其他字符串是文字。
@CASE ("Product_Code", 'CAR', 'A car', 'TRUCK', 'A truck')