题目要求
如果删除某个stuinfo表的一个学员,在删除之前备份该学员信息到stuInfo_bak表自行创建), 级联删除stuScore表中其所有成绩信息,级联删除其stuAnswer表答题信息。我先写了备份那句CREATE OR REPLACE TRIGGER trig_delStuinfo
before delete on stuinfo
referencing old as o
for each row
begin
insert into stuinfo_bak values (:o.id,:o.stuid,:o.stuclass,:o.sheetname,:o.stuscore,:o.standard);
end;但编译提示
2/41 PLS-00049: 错误的赋值变量 'O.STUID'
2/62 PLS-00049: 错误的赋值变量 'O.SHEETNAME'
2/75 PLS-00049: 错误的赋值变量 'O.STUSCORE'
2/87 PLS-00049: 错误的赋值变量 'O.STANDARD'
有错吗?书上也是这么写的
如果删除某个stuinfo表的一个学员,在删除之前备份该学员信息到stuInfo_bak表自行创建), 级联删除stuScore表中其所有成绩信息,级联删除其stuAnswer表答题信息。我先写了备份那句CREATE OR REPLACE TRIGGER trig_delStuinfo
before delete on stuinfo
referencing old as o
for each row
begin
insert into stuinfo_bak values (:o.id,:o.stuid,:o.stuclass,:o.sheetname,:o.stuscore,:o.standard);
end;但编译提示
2/41 PLS-00049: 错误的赋值变量 'O.STUID'
2/62 PLS-00049: 错误的赋值变量 'O.SHEETNAME'
2/75 PLS-00049: 错误的赋值变量 'O.STUSCORE'
2/87 PLS-00049: 错误的赋值变量 'O.STANDARD'
有错吗?书上也是这么写的
CREATE TABLE answer (
id int PRIMARY KEY ,
qNum varchar2 (50) NOT NULL ,
qAns varchar2 (50) NOT NULL ,
sheetName varchar2 (20) NOT NULL
); CREATE TABLE stuInfo (
id int PRIMARY KEY ,
stuName varchar2 (50) NOT NULL ,
password varchar2 (10) NOT NULL ,
stuClass varchar2 (10) NULL ,
actor varchar2 (10) NOT NULL,
computer varchar2 (50) DEFAULT '0' NOT NULL
);CREATE TABLE stuScore (
id int PRIMARY KEY ,
stuId int NOT NULL ,
stuClass varchar2 (10) NULL,
sheetName varchar2 (20) NOT NULL ,
stuScore number(4,1)NOT NULL,
standard varchar2(20) NULL
);CREATE TABLE stuAnswer (
id int PRIMARY KEY ,
stuId int NOT NULL ,
qNum varchar2 (50) NOT NULL ,
stuAns varchar2 (50),
computer varchar2 (50),
sheetName varchar2 (20) NULL
);
CREATE TABLE stuinfo_bak (
id int PRIMARY KEY ,
stuId int NOT NULL ,
stuClass varchar2 (10) NULL,
sheetName varchar2 (20) NOT NULL ,
stuScore number(4,1)NOT NULL,
standard varchar2(20) NULL
);
所以错误啊!
执行其他语句都没问题,就是编译这个触发器时oracle会断开连接,这是什么原因