Я создал процедуру, которая принимает параметры умножения.Это хорошо работает, чтобы создать его, но когда я использую его, я получаю следующую ошибку:
ORA-01400: cannot insert NULL into ("SQL_LPMTLWJHENVGDRAKNUHFFMJYJ"."KONTO"."KNR") ORA-06512: at "SQL_LPMTLWJHENVGDRAKNUHFFMJYJ.AIFER_INSÄTTNING", line 4
ORA-06512: at "SQL_LPMTLWJHENVGDRAKNUHFFMJYJ.DO_INSÄTTNING", line 7
ORA-06512: at line 2
ORA-06512: at "SYS.DBMS_SQL", line 1721
мой код:
create or replace procedure do_insättning(
p_pnr in insättning.pnr%type,
p_knr in insättning.knr%type,
p_belopp in insättning.belopp%type)
is
begin
insert into insättning(radnr, pnr, knr, belopp, datum)
values (radnr_seq.nextval, p_pnr, p_knr, p_belopp, sysdate);
commit;
dbms_output.put_line('Belopp på konto är '||get_saldo(p_knr));
end;
и тест:
BEGIN
do_insättning('540126-1111', 123, 1000);
do_insättning('691124-4478', 124, 2000);
COMMIT;
END;
/
структура таблицы:
create table insättning (
radnr number(9) not null,
pnr varchar2(11) not null,
knr number(8) not null,
belopp number(10,2),
datum date not null);
мой триггер:
create or replace trigger aifer_insättning
after insert
on insättning
for each row
when (new.belopp is not null)
begin
update konto set saldo = saldo + :new.belopp;
end;
/
Обновлен мой триггер, но теперь появилась другая ошибка:
ORA-02291: integrity constraint (SQL_BEFWFOGHQKTQKJYDJZCSUDFOO.KNRINSÄTTNING_FK) violated - parent key not found ORA-06512: at "SQL_BEFWFOGHQKTQKJYDJZCSUDFOO.DO_INSÄTTNING", line 7
ORA-06512: at line 3
ORA-06512: at "SYS.DBMS_SQL", line 1721