从表名中选择 variable_of_tablename.* 给出 00904。00000 - “%s:无效标识符”

Selecting variable_of_tablename.* from tablename gives 00904. 00000 - "%s: invalid identifier"

SELECT sur.* FROM table_name

每当我在 SQLDeveloper 中 运行 这段代码时,它都会给我错误

ORA-00904: "SUR": 标识符无效

  1. 00000 - “%s:无效标识符”

我不确定如何解决这个问题,而且在网上找不到任何东西。我必须使用这种格式的原因是因为它遵循以前的开发人员已经实现的格式,我必须遵守该标准。

有没有人有这方面的经验?

试试这个

SELECT sur.* FROM table_name sur;

您使用了 sur 别名来引用 table table_name 的所有列,但在您可以使用之前,您需要给 table table_name 一个别名喜欢苏尔

但是,由于您使用的是实际的 table 名称而不是不同的别名,因此以下查询将正常工作。

select table_name.* from table_name;

在这里,您要求列出 table "SUR" 中的列,但由于 "from" 子句中不存在这样的 table,因此 Oracle 会引发此错误。

这里有2个选项:

  1. 给 from 子句中的任何 table 一个别名(第二个名字) 例如:

    select sur.* from tablename1 sur, tablename2 foo where sur.col1=foo.col1

  2. 使用 table 名称本身而不是使用列别名 "SUR" 例如:

    select tablename1.* 来自 tablename1, tablename2 其中 tablename1.col1=tablename2.col1

参考:http://www.techonthenet.com/oracle/alias.php