我对PLSQL错误消息感到困惑
返回以下错误:
Error at line 13: PL/SQL: Statement ignored
1. create or replace TRIGGER trg before insert on pacient for each row
2. declare
3. rr varchar(3);
它告诉我第13行有一个错误,但它显示第3行:(。任何想法如何定位这些消息?谢谢。
这是我的代码:
create or replace TRIGGER trg before insert on pacient for each row
declare
rr varchar(3);
mm varchar(3);
dd varchar(3);
abc varchar(4);
x varchar(2);
begin
rr:=substr (:new.num, 1, 2);
mm:=substr (:new.num, 3, 2);
dd:=substr (:new.num, 5, 2);
abc:=substr (:new.num, 7, 3);
x:=substr (:new.num, 10, 1);
if mod (to_number(rr || mm || dd || abc))<>to_number(x) then raise_application_error(-20500,'wrong number');
end if;
end;
答案 0 :(得分:1)
我注意到的一件事是Mod需要另一个参数。您需要指定要将数字除以哪个值以返回余数。
答案 1 :(得分:1)
MOD
功能必须两个参数。
我想你想要实现的是这个(真的只是猜测):
if mod (to_number(rr || mm || dd || abc),to_number(x)) != 0 then
raise_application_error(-20500,'wrong number');
end if;
你知道MOD
的作用吗?例如。 MOD(15,6)
为3,MOD(18,6)
为0。
也许你可以编辑你的问题,让我们知道这一切是什么。