Андрей NOP Asked:2020-10-02 23:11:56 +0800 CST2020-10-02 23:11:56 +0800 CST 2020-10-02 23:11:56 +0800 CST 来自 DUAL 表的查询中的未知标识符 772 select x from dual 此查询引发错误: ORA-00904: "X": 无效标识符 好的,我明白了,X 标识符没有在任何地方声明。 但是为什么这个查询运行良好: select n from dual 这个未知但有效的标识符是什么?它从何而来? 该查询也有效: select q, y, s, d, n, m from dual 在 SQL*Plus 中重现: PS Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production sql 1 个回答 Voted Best Answer 0xdb 2020-10-03T17:36:55+08:002020-10-03T17:36:55+08:00 DUAL它是一个物理表,仅包含一列dummy和一条带有值的记录'X'。其中没有其他列: SQL> select * from dual; DUMMY ----- X SQL> select n from dual; select n from dual * ERROR at line 1: ORA-00904: "N": invalid identifier 但是,任何对查询表有效的表达式都可以指定为列。例如,要调用不带参数的函数,不需要括号,这样的表达式与表列没有什么不同。 您可以使用以下查询检查它们是否按名称存在: select owner, object_name, object_type from all_objects where object_name = 'N';
DUAL
它是一个物理表,仅包含一列dummy
和一条带有值的记录'X'
。其中没有其他列:但是,任何对查询表有效的表达式都可以指定为列。例如,要调用不带参数的函数,不需要括号,这样的表达式与表列没有什么不同。
您可以使用以下查询检查它们是否按名称存在: