我的表格的一列在蟾蜍中显示无效标识符

问题描述 投票:0回答:1

我的触发器出现以下错误 [警告] ORA-24344: 成功但编译错误 3/62 PL/SQL:ORA-00904:“PEOPLE”。“FLATNO”:无效标识符 3/9 PL/SQL:忽略 SQL 语句 7/66 PL/SQL:ORA-00904:“PEOPLE”。“FLATNO”:无效标识符 7/9 PL/SQL:忽略 SQL 语句 (2: 0): 警告:已编译但有编译错误

我的触发点:

设置服务器输出打开; 创建或替换触发短裙 在插入、删除或更新人员之前 对于每一行 开始 如果插入则 更新 FLAT SET 状态 = '雇用' WHERE FLAT.FLATNO = PEOPLE.FLATNO; 如果结束;

IF DELETING THEN
    UPDATE FLAT SET Status = 'Not Hired' WHERE FLAT.FLATNO = PEOPLE.FLATNO;
END IF;

结束; /

我的桌子:

创建平面表格( 公寓编号, 租金号码, FlatSize VARCHAR(20),
FlatType VARCHAR(20),
面对VARCHAR(15), 房间编号, 建筑物编号, 状态 VARCHAR(20), 主键(FlatNo), 外键(建筑物编号) 参考建筑物(建筑物编号) );

创建表人( 人员 ID 号, 会员编号, 付费号码, 到期编号, HireDate VARCHAR(15), 联系号码唯一, 公寓编号, 主键(人员ID), 外键(FlatNo) 参考文献 FLAT(FlatNo) );

plsql toad
1个回答
0
投票

您确定这就是您的表格的“确切”定义方式吗?表中的列名采用驼峰式大小写,但不带引号。在 Oracle 中,当创建的列周围带有引号时,列名区分大小写,并且始终需要在语句中加引号。我的猜测是,您已经创建了在列名周围加上引号并混合大小写的表,这就是需要在任何地方引用这些列的方式。 显示引用列影响的基本示例:

create table t ( "My_column" VARCHAR2(100) ); Table T created. update t set MY_COLUMN = 'foobar'; SQL Error: ORA-00904: "MY_COLUMN": invalid identifier 00904. 00000 - "%s: invalid identifier" *Cause: *Action: update t set "My_column" = 'foobar'; 0 rows updated. drop table t; Table T dropped. create table t ( My_column VARCHAR2(100) ); Table T created. update t set MY_COLUMN = 'foobar'; 0 rows updated.

与您的错误相同。我猜这就是问题所在。您的表格是这样创建的:

CREATE TABLE FLAT( "FlatNo" NUMBER, "Rent" NUMBER, ...

如果您处于项目早期,我建议删除并重新创建不带引号标识符的表,因为您必须引用列名
到处

:所有 pl/sql 代码、所有 sql 语句等 阅读更多相关信息

这里

© www.soinside.com 2019 - 2024. All rights reserved.