当前位置: 首页 > 知识库问答 >
问题:

Java . SQL . sqlsyntaxerrorexception:ORA-00904:" column name ":无效的标识符

谷梁承宣
2023-03-14

当我打开SQL开发人员时,相同的列以完全相同的名称存在。它发生在一些UAT和prod DB中,但在一些UAT数据库中工作。

请帮助我

另请说明以下例外情况的区别

    < li>ORA-00904:"列名":无效的标识符 < li>ORA-00904:"表名"。" columnName ":无效标识符

共有1个答案

万俟华辉
2023-03-14

心灵信箱。

默认情况下,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>

截至您发布的两个错误:它们是相同的。唯一的区别是,第 2 个显示所有者(html" target="_blank">架构)名称以及列名称。请注意,它不是数据库名称(如“DB_Name”所示);在Oracle中,数据库是不同的东西。如果你试图在Oracle和其他一些DBMS之间建立关系,那么什么是“数据库”,Oracle中有“user”(或“schema”)。

除此之外,没什么区别。< code>ORA-00904意味着您正在引用一个不存在于该表中的列。再次:介意字母大小写。

 类似资料:
  • 问题内容: 我尝试使用Oracle数据库编写以下内部联接查询: 这给出了以下错误: 一个表的DDL为: 问题答案: 您的问题是那些有害的双引号。 Oracle SQL允许我们忽略数据库对象名称的大小写,只要我们创建它们时都使用大写的名称,或者不使用双引号即可。如果我们在脚本中使用大小写混合或小写并且将标识符括在双引号中,则当我们引用对象或其属性时,我们都被要求使用双引号和精确的大小写: tl; d

  • ORA-00904:“strdef”:无效标识符 > Oracle数据库版本为: Oracle Database 11g Enterprise Edition版本11.2.0.4.0-64位Production PL/SQL版本11.2.0.4.0-Production“Core 11.2.0.4.0 Production”TNS for Linux:版本11.2.0.4.0-Production

  • 我得到这个错误,而在Oracle数据库中执行查询: ORA-00904:“STRDEF”:无效标识符 > Oracle Database 11g Enterprise Edition 11.2.0.4.0版-64位生产PL/SQL 11.2.0.4.0版-生产“CORE 11.2.0.4.0生产”Linux版TNS:11.2.0.4.0版-生产NLSRTL 11.2.0.4.0版-生产 STRDE

  • 在PL/SQL中执行以下查询时,我得到ORA-00904:“\d$”:无效标识符错误。 我也尝试使用单引号,但仍然面临同样的错误。 有人能帮我解决这个问题吗

  • Oracle 11g Express Edition..创建表时出错 ORA-00904:无效标识符

  • 我已经在虚拟XP中安装了Oracle 10g,并使用 并且成功地创建了表。但是当我试图通过简单的查询获取值时,如 我得到的错误就像 ORA-00904:"bbb":无效标识符 我不能理解我在这里做错了什么。

  • 问题内容: 1.在将row_val变量char值’Good’更新到表中时,得到无效的标识符错误2.在插入数字时,它工作正常,但字符串却出现错误3。 错误 ORA-00904:“良好”:标识符无效ORA-06512:在第43行ORA-06512:在“ SYS.DBMS_SQL”在第1721行 我想将此’good,son,r ,, happy’字符串中的每个单词插入一行中的单独列中 问题答案: 字符串

  • 创建此表后,我正在尝试添加外键 我想使用Alter table创建的外键是Sailnumber: ALTER表成员添加外键(sailnumber)引用船(sailnumber) sailnumber是table boat的主键,如下所示 然而,我得到了这个错误SQL错误: ORA-00904:"SAILNUMBER":无效的标识符,我不知道为什么我得到有人能告诉我哪里出错了吗?