Как проверить, что несколько параметров в процедуре работает правильно? - PullRequest
0 голосов
/ 16 апреля 2019

Я создал процедуру, которая принимает параметры умножения.Это хорошо работает, чтобы создать его, но когда я использую его, я получаю следующую ошибку:

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
...