解决ORA-00904: invalid identifier标识符无效

今天在做项目中,往数据库插入数据的时候,死活插不进去,提示ORA-00904: invalid identifier “fEditDate”,也就是标识符无效的错误。


百度以后,有的说是字段名字错了,有的说是字段在表中都不存在,但是我的字段在表中确实是存在的。

Insert into TExamPlanScene
  (fExamPlanSceneID,fExamPlanID,fSceneID,fAddDate,fEditDate)
Values
  (f_CreateGUID(),
   '2C6C17D6-8874-4BC6-E053-6A1510AC3CB1',
   '2C6E65D9-0B3B-58D3-E053-6A1510AC58CE',
   sysdate,
   sysdate)
插入语句也没有什么语法问题。

然后怀疑,是不是因为表结构有问题,由于是通过PowerDesigner设计的表结构,然后拷的代码去数据库运行创建的表。

代码如下:

/*==============================================================*/
/* Table: "TExamPlanScene"                                      */
/*==============================================================*/
create table  TExamPlanScene
(
   "fDateSubjectID"     VARCHAR2(36)         not null,
   "fExamPlanID"        VARCHAR2(36)         not null,
   "fSceneID"           VARCHAR2(36)         not null,
   "fAddDate"           DATE,
   "fEditDate"          DATE,
   constraint PK_TEXAMPLANSCENE primary key ("fDateSubjectID")
);

comment on table "TExamPlanScene" is
'考试计划场次表';



因为通过PowerDesigner的Preview里面直接拷贝的代码,在SQL上运行并未出错,因此以为是OK的,直到出错了,发现每个字段竟然是带引号的,然后去掉引号,再尝试插入,字段就可以顺利插入进去了。。

将上段代码改为:

/*==============================================================*/
/* Table: "TExamPlanScene"                                      */
/*==============================================================*/
create table  TExamPlanScene
(
   fDateSubjectID     VARCHAR2(36)         not null,
   fExamPlanID        VARCHAR2(36)         not null,
   fSceneID           VARCHAR2(36)         not null,
   fAddDate           DATE,
   fEditDate          DATE,
   constraint PK_TEXAMPLANSCENE primary key (fDateSubjectID)
);

comment on table TExamPlanScene is
'考试计划场次表';

数据就可以正常的插入进去了。


因此,有的时候,报”ORA-00904: invalid identifier标识符无效“时,有可能是因为

1.你的字段在表中不存在

2.创建字段时最后一个字段加了”,"

3.创建的字段用双引号了类似于("aaa") 这样的

4.没有定义的变量,而在接下来的sql语句中引用了该变量


以上,以备以后查询。

回答: 当出现ORA-00904: invalid identifier标识符无效错误时,可能有几个原因。首先,可能是因为你引用的字段在表中不存在。其次,可能是在创建字段时,最后一个字段加了逗号。另外,创建的字段可能使用了双引号,例如("aaa")这样的格式。最后,可能是在接下来的SQL语句中引用了一个未定义的变量。\[1\] 在你提供的引用中,可以看到一个插入语句的示例,其中包含了表名和字段名。然而,在创建表时,字段名被加上了双引号。这可能导致在插入数据时出现ORA-00904错误。你可以尝试去掉字段名的双引号,然后再次尝试插入数据,看看问题是否解决了。\[2\]\[3\] 总结来说,当遇到ORA-00904: invalid identifier标识符无效错误时,你需要检查字段是否存在、是否有语法错误以及是否引用了未定义的变量。同时,注意在创建表时避免使用双引号包裹字段名,以免引起类似的错误。 #### 引用[.reference_title] - *1* [ORA-00904: invalid identifier](https://blog.csdn.net/today119/article/details/124112296)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [解决ORA-00904: invalid identifier标识符无效](https://blog.csdn.net/gx_apple/article/details/50728217)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值