在这个Oracle SQL语句中,`x`是指什么:`select * from dual,其中x = 1或1 = 1`

我不小心发现在Oracle SQL中可以发出以下语句:

select * from double,其中x = 1或1 = 1.

>双列中的列名为dummy而不是x.
>如果我从任何其他表中选择,它仍然有效,返回所有行.
> select * from double,其中y = 1或1 = 1也可以.
> select * from dual,其中z = 1或1 = 1不起作用,给出ORA-00904:z:无效的标识符.
> select * from double,其中x = 1不起作用,给出ORA-06553:PLS-306:调用’OGC_X’时参数的数量或类型错误.

x和y指的是什么?

最佳答案 这似乎是因为在某些Oracle数据库版本中存在名为X和Y的同义词:

select owner, synonym_name, table_owner, table_name from dba_synonyms where synonym_name in ('X', 'Y');

OWNER                          SYNONYM_NAME                   TABLE_OWNER                    TABLE_NAME
------------------------------ ------------------------------ ------------------------------ ----------
PUBLIC                         X                              MDSYS                          OGC_X
PUBLIC                         Y                              MDSYS                          OGC_Y
点赞