Oracle case sensitivity example

By default, Oracle processing of object names is not case sensitive, however, object names are physically stored in all uppercase. The statement create table test1 (col1 int) creates a table named “test1,” which is identified in the Oracle system catalog with name “TABLE1.” The following SQL statements both return the same result from the same table:

select from TEST1

and

select from test1

As Replication Server processes information, it requires the LTL from the Replication Agent to match the character case of the table and column names specified in the replication definition. As the data moves to the replicate site, the commands created by Replication Server to be applied to the replicate database use the case specified in the replication definition for table and column names (for example, insert into TEST1 (COL1) values (1)).

If the replicate database is case sensitive, the commands presented by Replication Server may be rejected with an “object not found” error. In this example, if the replicate database is Adaptive Server (and the Adaptive Server is installed as case sensitive) and the replicate table was created with the statement create table test1 (col1 int), the following statement would fail: insert into TEST1 (COL1) values (1)

The LTL generated by the Replication Agent must refer to table TEST1 and column COL1 to be accepted by Replication Server. For the Replication Agent, the value of the ltl_character_case configuration parameter must be set to asis to send LTL object names in the same case as they are returned by the primary database.

If no other changes are made, an insert into table test1 with a value of “1” results in the following command sent to the replicate database:

insert into TEST1 (COL1) values (1)

This statement may fail if the replicate table name is case sensitive and the name of the table is not TEST1 with a column named COL1.