2025年3月29日 星期六 甲辰(龙)年 月廿八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > Oracle

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

时间:05-17来源:作者:点击数:27

今天在做项目中,往数据库插入数据的时候,死活插不进去,提示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语句中引用了该变量

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门