我创建了使用乘法参数的过程。创建它的效果很好,但是当我使用它时,出现以下错误:
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