![](/img/trans.png)
[英]java.sql.SQLSyntaxErrorException: ORA-00904: : invalid identifier
[英]java.sql.SQLSyntaxErrorException: ORA-00904: “columnName”: invalid identifier
当我打开 SQL 开发人员时,相同的列以完全相同的名称存在。 它发生在一些 UAT 和 prod DB 中,但在一些 UAT 数据库中工作。
请帮我
另请解释以下异常之间的区别
介意信箱。
默认情况下,Oracle 中所有对象的名称都以大写形式存储,但您可以使用任何大小写来引用它们。 例如:
SQL> create table test (id number);
Table created.
SQL> insert into test (ID) values (1);
1 row created.
SQL> select iD from TeST;
ID
----------
1
SQL> select ID from test;
ID
----------
1
但是,如果你使用双引号和混合大小写,那么你必须使用双引号和完全相同的字母大小写,总是:
SQL> create table "Test" ("iD" number);
Table created.
SQL> insert into test (id) values (1);
insert into test (id) values (1)
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> insert into "Test" (ID) values (1);
insert into "Test" (ID) values (1)
*
ERROR at line 1:
ORA-00904: "ID": invalid identifier
SQL> insert into "Test" ("ID") values (1);
insert into "Test" ("ID") values (1)
*
ERROR at line 1:
ORA-00904: "ID": invalid identifier
SQL> insert into "Test" ("iD") values (1);
1 row created.
SQL>
从您发布的两个错误开始:它们是相同的。 唯一的区别是第二个显示所有者(模式)名称和列名。 请注意,它不是数据库名称(如“DB_Name”所示); 在 Oracle 中,数据库有所不同。 如果您试图在 Oracle 和其他一些 DBMS 之间建立关系,那么 Oracle 中有“用户”(或“模式”)是什么“数据库”。
除此之外,没有区别。 ORA-00904
表示您正在引用该表中不存在的列。 再次:介意字母大小写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.