Specifying Object Names in Oracle GoldenGate Input
The following rules apply when specifying object names in parameter files (such as in TABLE
and MAP
statements), column-conversion functions, commands, and in other input.
Specifying Filesystem Path Names in Parameter Files on Windows Systems
On Windows systems, if the name of any directory in a filesystem path name begins
with a number, the path must be specified with forward slashes, not backward
slashes, when listing that path in Oracle GoldenGate input, such as
parameter files or commands. This requirement prevents Oracle GoldenGate
from interpreting the name as an octal escape sequence. For example, the
following paths contain a directory named \2023
that will
be interpreted as the octal sequence \202
:
C:\deployments\ea
C:\deployments\north\ea
C:\deployments\north\2023\ea
The preceding path can be used with forward slashes as follows:
C:/deployments/ea
C:/deployments/north/ea
For more information, see Support for Escape Sequences.
Specifying Names that Contain Slashes
If a table name contains a forward-slash character (/) in any part of its name, that name component must be enclosed within double quotes unless the object name is from an IBM i platform . The following are some examples:
"c/d" "/a".b a."b/"
If the name contains a forward slash that is not enclosed within double quotes, Oracle GoldenGate treats it as a name that originated on the IBM i platform (from a DB2 for i database). The forward slash in the name is interpreted as a separator character.
Specifying Case-Sensitive Database Object Names
Oracle GoldenGate supports case-sensitive names. Follow these rules when specifying case-sensitive objects.
-
Specify object names from a case-sensitive database in the same case that is used to store them in the host database. Keep in mind that, in some database types, different levels of the database can have different case-sensitivity, such as case-sensitive schema but case-insensitive table. If the database requires quotes to enforce case-sensitivity, put quotes around each object that is case-sensitive in the qualified name.
Correct:
TABLE "Sales"."ACCOUNT"
Incorrect:
TABLE "Sales.ACCOUNT"
-
Oracle GoldenGate converts case-insensitive names to the case in which they are stored when required for mapping purposes.
Table 11-17 provides an overview of the support for case-sensitivity in object names, per supported database. Refer to the database documentation for details on this type of support.
Table 11-17 Case Sensitivity of Object Names Per Database
Database | Requires quotes to enforce case-sensitivity? | Unquoted object name | Quoted object name |
---|---|---|---|
DB2 |
Yes. Differentiates between case-sensitive and case-insensitive by use of quotes. |
Case-insensitive, stores in upper case |
Case-sensitive, stores in mixed case |
MySQL (Case-sensitive database) |
No
|
No effect |
No effect |
Oracle Database |
Yes. Differentiates between case-sensitive and case-insensitive by use of quotes. |
Case-insensitive, stores in upper case |
Case-sensitive, stores in mixed case |
SQL Server (Database created as case-sensitive) |
No Always case-sensitive, stores in mixed case |
No effect |
No effect |
SQL Server (Database created as case-insensitive) |
No Always case-insensitive, stores in mixed case |
No effect |
No effect |
Teradata |
No Always case-insensitive, stores in mixed case |
No effect |
No effect |
Note:
For all supported databases, passwords are always treated as case-sensitive regardless of whether the associated object name is quoted or unquoted.
Differentiating Case-Sensitive Column Names from Literals
By default, Oracle GoldenGate follows SQL-92 rules for specifying column names and literals. In Oracle GoldenGate parameter files, conversion functions, user exits, and commands, case-sensitive column names must be enclosed within double quotes if the database requires quotes around a name to support case-sensitivity. For example:
"columnA"
Case-sensitive column names in databases that do not require quotes to enforce case-sensitivity must be specified as they are stored in the database. For example:
ColumnA
Literals must be enclosed within single quotes. In the following example, Product_Code
is a case-sensitive column name in an Oracle database, and the other strings are literals.
@CASE ("Product_Code", 'CAR', 'A car', 'TRUCK', 'A truck')