oracle同义词中的双引号

时间:2016-03-15 10:24:16

标签: sql oracle oracle11g synonym

我有一张桌子SC.LT_TABLE。 由于编码错误,我的程序执行了错误的请求

SELECT * FROM SC.LT_TABLESC.LT_TABLE

当然它不起作用。目标是使此查询有效。

我试图创建一个像

这样的同义词
CREATE PUBLIC SYNONYM "SC.LT_TABLESC.LT_TABLE" FROM SC.LT_TABLE

并且查询有效但仅当我使用双引号时,我的代码才使用它。

所以问题是 - 我可以以某种方式将双引号包含在同义词中吗?或者还有另一种方法可以使查询起作用吗?

我知道整个问题很荒谬,但我现在无法更新代码: - )

Oracle 11g。

感谢。

1 个答案:

答案 0 :(得分:0)

没有办法做你正在尝试的事情。 SC.LT_TABLESC.LT_TABLE中的标识SELECT * FROM SC.LT_TABLESC.LT_TABLE包含三个细分,将以这种方式解析。

很有可能定义一个名为"SC.LT_TABLESC.LT_TABLE"的同义词,但由于此同义词包含.,因此只能使用带引号的标识符语法来引用它。

这里的关键点是标识符SC.LT_TABLESC.LT_TABLE首先被解析为三个段,然后解析每个段,并且无法使两个段LT_TABLESC.LT_TABLE看起来像一个段,因为决定是在任何现有对象被考虑​​之前做出的。