在ODI迁移后需要引用表名

时间:2014-03-14 13:48:10

标签: database oracle case-sensitive quote

我正在使用Oracle Data Integrator 11g,并在2个oracle 11g2数据库之间传输表。 转移后,我需要引用表名进行交易等。

以下是结果:

SQL> select tname from tab;

TNAME
------------------------------
ogrenci2

在这里,当我尝试"从ogrenci2"中选择*我得到"表或视图不存在"错误。 当我使用"选择*来自" ogrenci2""它显示了数据。我在ODI或Oracle数据库方面不是很有经验,但我在google和stack上的搜索没有做任何解决方案。顺便说一下,两个数据库都有相同的字符集。

1 个答案:

答案 0 :(得分:0)

显然,ODI在新数据库中使用区分大小写的名称创建了表。默认情况下,大多数SQL数据库将对象名称转换为大写,因此例如此语句:

create table ogrenci2 (col1 number)

将创建一个大写名称为" OGRENCI2"的表格:

SQL> select table_name from user_tables

TABLE_NAME
----------------------------
OGRENCI2

但是,用引号提供表名,如下所示:

create table "ogrenci2" (col1 number)

将使用文字小写名称

创建表格
SQL> select table_name from user_tables

TABLE_NAME
----------------------------
ogrenci2

随后,每次引用时都必须引用此表名,否则数据库会将其转换为大写,然后显然无法在目录中找到它。

我对ODI不太熟悉,但可能有一个强制大写对象名称的选项。