我们刚刚从Oracle 8i迁移到Oracle 11g。这样做我们遇到了一个问题,我们有一个名为current_time的变量。我们将它用作各种过程和函数的变量以及几个表中的列名。在我们的procview中,对术语'CURRENT_DATE'的引用看起来在几千的附近。当我们升级时,突然间我们指的是current_date一词,新函数覆盖了变量和列名。我的问题是如何禁用对oracle定义函数的引用?
答案 0 :(得分:1)
您需要限定列名称。否则,Oracle的范围解析规则将选择列
上的函数SQL> create table foo( current_date date );
Table created.
SQL> insert into foo values( date '2011-01-01' );
1 row created.
SQL> select current_date from foo;
CURRENT_D
---------
07-FEB-12
SQL> select f.current_date from foo f;
CURRENT_D
---------
01-JAN-11