-1 支付失败
2 支付中
1 支付成功
0或()空 没有支付
create or replace trigger UPDCUST2
before update on bd_cubasdoc
for each row
declare
-- local variables here
pk_bas char(20);
/*查询目标公司是否存在基本档案*/
cursor basjob(id char) is
select pk_cubasdoc
from ncv5.bd_cubasdoc /*目标数据库表*/
where pk_cubasdoc = id
and nvl(dr, 0) = 0
and pk_cubasdoc in
(select bd_cubasdoc.pk_cubasdoc from ncv5.bd_cubasdoc,ncv5.arap_djfb,ncv5.bd_cumandoc
where arap_djfb.ksbm_cl = bd_cumandoc.pk_cumandoc
and bd_cumandoc.pk_cubasdoc = bd_cubasdoc.pk_cubasdoc
and arap_djfb.payflag in ('1', '2'));
begin
open basjob(:old.pk_cubasdoc);
loop
fetch basjob
into pk_bas;
exit when basjob%notfound;
end loop;
close basjob;
--raise_application_error(-20001,:new.pk_cubasdoc);
--raise_application_error(-20001,:new.custname);
--raise_application_error(-20001,pk_custname);
--dbms_output.put_line(:new.pk_cubasdoc);
if pk_bas is not null then
if :new.custname<>:old.custname then
begin
raise_application_error(-20001,:old.custname||'已从网银付款,不能修改名称,请取消!');
end;
end if;
end if;
end UPDCUST2;
下面这样是最新可行的:
create or replace trigger UPDCUST2
before update on bd_cubasdoc
for each row
declare
-- local variables here
pk_bas varchar2(200);
/*查询目标公司是否存在基本档案*/
cursor basjob(id varchar2) is
select custname
from ncv5.bd_cubasdoc /*目标数据库表*/
where custname = id
and nvl(dr, 0) = 0
and custname in
(select bd_cubasdoc.custname from ncv5.bd_cubasdoc,ncv5.arap_djfb,ncv5.bd_cumandoc
where arap_djfb.ksbm_cl = bd_cumandoc.pk_cumandoc
and bd_cumandoc.pk_cubasdoc = bd_cubasdoc.pk_cubasdoc
and arap_djfb.payflag in ('1', '2'));
begin
open basjob(:old.custname);
loop
fetch basjob
into pk_bas;
exit when basjob%notfound;
end loop;
close basjob;
if pk_bas<>:new.custname then
begin
raise_application_error(-20001,:old.custname||'已从网银付款,不能修改名称,请取消!');
end;
end if;
end UPDCUST2;