create or replace trigger overdraft after update on account referencing new as n for each row when (n.balance<0)
begin
insert into loan values(n.account_number,n.branch_name,-n.balance);
insert into borrower (select customer_name,account_number from depositor where n.account_number=depositor.account_number);
update account set balance=0 where account.account_number=n.account_number
end;/用的是oracle10g xe,错误报告:行 5 上出现错误: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
begin
case declare end exception exit for goto if loop mod null
pragma raise return select update while with
<<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe
begin
insert into loan values(n.account_number,n.branch_name,-n.balance);
insert into borrower (select customer_name,account_number from depositor where n.account_number=depositor.account_number);
update account set balance=0 where account.account_number=n.account_number
end;/用的是oracle10g xe,错误报告:行 5 上出现错误: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
begin
case declare end exception exit for goto if loop mod null
pragma raise return select update while with
<<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe
这句后面没加分号
begin
insert into loan values(n.account_number,n.branch_name,-n.balance);
insert into borrower (select customer_name,account_number from depositor
where n.account_number=depositor.account_number);
update account set balance=0 where account.account_number=n.account_number;
end;/加了最后一句那个分号后,它还是报错:
行 5 上出现错误: PL/SQL: SQL Statement ignored