现在我有两张表:
卡表:
A的编号
B的编号
借出数量书表:
B的编号
可借出数量
1、卡表中记录每个卡包含的借书信息,
如:
1001, a书编号,1;
1001,b书编号,2;
1002,c书编号,22、书表记录了每种书的可借出的数量
如:
1001 a书:5;
1002 b书:6;
现在我要在oracle的后台作一存储过程:
当我删除卡表中某一卡号时,
自动将书表中的对应的可借出数量增加,
增加的数量为卡表记录中的借出数量。谁能详细的给出这个存储过程的SQL语句。
卡表:
A的编号
B的编号
借出数量书表:
B的编号
可借出数量
1、卡表中记录每个卡包含的借书信息,
如:
1001, a书编号,1;
1001,b书编号,2;
1002,c书编号,22、书表记录了每种书的可借出的数量
如:
1001 a书:5;
1002 b书:6;
现在我要在oracle的后台作一存储过程:
当我删除卡表中某一卡号时,
自动将书表中的对应的可借出数量增加,
增加的数量为卡表记录中的借出数量。谁能详细的给出这个存储过程的SQL语句。
错误如下:
行号= 10 列号= 17 错误文本= PLS-00049: 错误的赋值变量 'OLD.A的编号'
行号= 15 列号= 17 错误文本= PLS-00049: 错误的赋值变量 'OLD.A的编号'sql语句如下:
DECLAREbno number(12);
pxno number(12);
BEGINSELECT B的编号
INTO pxno
FROM A
WHERE A的编号 = :OLD.A的编号;SELECT 可借出数量
INTO bno
FROM A
WHERE A的编号 = :OLD.A的编号;update B SET 可借出数量 = 可借出数量+bno
where B的编号 = pxno;
END;这个问题应该怎么修改?
DECLAREbno number(12);
pxno number(12);
BEGINSELECT B的编号
INTO pxno
FROM A
WHERE A的编号 = :current.A的编号;SELECT 可借出数量
INTO bno
FROM A
WHERE A的编号 = :current.A的编号;update B SET 可借出数量 = 可借出数量+bno
where B的编号 = pxno;
END;仍旧有错误:
错误如下:
行号= 7 列号= 1 错误文本= PL/SQL: SQL Statement ignored
行号= 10 列号= 17 错误文本= PL/SQL: ORA-00904: "CURRENT"."A的编号": 无效的标识符
行号= 12 列号= 1 错误文本= PL/SQL: SQL Statement ignored
行号= 15 列号= 17 错误文本= PL/SQL: ORA-00904: "CURRENT"."A的编号": 无效的标识符
CREATE TRIGGER TG
AFTER DELETE
ON 卡表
FOR REACH ROW
BEGIN UPDATE 书表
SET 可借出数量 = 可借出数量+:OLD.借出数量
WHERE B的编号=:OLD.B的编号;END;