【发布时间】:2016-11-11 08:09:44
【问题描述】:
每当我在stud_master 表中插入行时,我都会尝试在stud_report 表中插入一行。为此,我尝试在触发器的帮助下遵循 SQL 代码,但我得到了:
警告:触发器创建时出现编译错误。
CREATE OR REPLACE TRIGGER trg
AFTER INSERT ON stud_master
FOR EACH ROW
DECLARE
roll number;
sum number;
per decimal(5,2);
BEGIN
roll := stud_master.roll_no;
sum := stud_master.sub1+stud_master.sub2+stud_master.sub3;
per := (0.33*(sum));
insert into stud_report values (roll,sum,per);
END;
/
stud_master 表包含
+---------+--------------+----------+
| Field | Type | Null? |
+---------+--------------+----------+
| roll_no | number | NOT NULL |
| name | varchar2(15) | |
| sub1 | number | |
| sub2 | number | |
| sub3 | number | |
| Address | varchar2(30) | |
+---------+--------------+----------+
stud_report 表包含
+------------+--------------+----------+
| Field | Type | Null? |
+------------+--------------+----------+
| roll_no | number | NOT NULL |
| total | number | |
| percentage | decimal(5,2) | |
+------------+--------------+----------+
编译错误是:
8/26 PLS-00103:在期待其中一个时遇到符号“)” 以下:
(
9/49 PLS-00103:在期待其中一个时遇到符号“,” 以下:
(
10/7 PLS-00103:预期时遇到符号“文件结尾” 以下之一:
;
【问题讨论】:
-
我认为你应该设置一个分隔符。请同时发布编译错误。
-
数字不是 mysql 数据类型。你在使用 oracle 吗?
-
是的,我正在使用 Oracle 数据库 10G
标签: triggers oracle10g multiple-tables