у меня 5 таблиц. они ---
create table customer
(
cust_name varchar2(20),
cust_id number(5),
date_of_birth date
)
insert into customer values('Mark',1,'10-JAN-1984');
insert into customer values('Sam',2,'22-FEB-1990');
create table bank
(
bank_name varchar2(20),
bank_id number(5)
)
insert into bank values(20,'HDFC');
insert into bank values(42,'ICICI');
create table location
(
bank_id number(5),
loc_name varchar2(20)
)
insert into location values(30,'Delhi');
insert into location values(30,'USA');
create table loan
(
cust_id number(5),
bank_id number(5),
st_date date
intrest number(5)
)
create table audit
(
cust_id number(5),
cust_name varchar2(20),
date_of_birth date,
bank_name varchar2(20),
st_date date,
loc_name varchar2(20),
interest number(5)
)
Я хочу создать триггер на таблице ссуд, если какой-либо клиент получает 0 процентов, то данные этого клиента и его банка должны храниться в таблице аудита.
так что если выполнить этот код -
insert into loan values(1,20,'20-DEC-2011',0);
Это означает, что этот клиент получает 0 процентов, поэтому его записи и банковские записи должны храниться в таблице аудита.
Мой код триггера -
create or replace trigger trg_loan
after insert or update
on loan
for each row
declare
var_loc varchar2(50);
var_name varchar2(50);
var_bankname varchar2(50);
begin
select cust_name into var_name from customer where cust_id = :new.cust_id;
select bank_name into var_bankname from bank where bank_id = :new.bank_id;
select loc_name into var_loc from location where loc_id = :new.loc_id;
IF (:new.interest = 0) THEN
insert into audit
values(:new.cust_id,var_name,:new.date_of_birth,var_bankname,:new.st_date,var_loc,:new.interest);
END IF;
end;
поэтому этот триггер создан с ошибкой компиляции. И это также не отвечает моим интересам.