【发布时间】:2021-05-16 04:28:23
【问题描述】:
当我打开 SQL 开发人员时,相同的列以完全相同的名称存在。 它发生在一些 UAT 和 prod DB 中,但在一些 UAT 数据库中工作。
请帮帮我
另外请说明以下异常的区别
- ORA-00904:“columnName”:标识符无效
- ORA-00904: "tableName"."columnName": 标识符无效
【问题讨论】:
标签: java sql spring oracle spring-boot
当我打开 SQL 开发人员时,相同的列以完全相同的名称存在。 它发生在一些 UAT 和 prod DB 中,但在一些 UAT 数据库中工作。
请帮帮我
另外请说明以下异常的区别
【问题讨论】:
标签: java sql spring oracle spring-boot
介意字母大小写。
默认情况下,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>
截至您发布的两个错误:它们是相同的。唯一的区别是 2nd 显示所有者(模式)名称以及列名称。请注意,它是NOT 数据库名称(正如“DB_Name”所暗示的那样);在 Oracle 中,数据库有所不同。如果您试图在 Oracle 和其他一些 DBMS 之间建立关系,那么什么是“数据库”那里是 Oracle 中的“用户”(或“模式”)。
除此之外,没有区别。 ORA-00904 表示您正在引用该表中不存在的列。再说一遍:注意字母大小写。
【讨论】: