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

  • Always case-sensitive, stores in mixed case

  • The names of columns, triggers, and procedures are case-insensitive

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')