ORA-00984: 列不允许在带有输入变量的过程中出现

ORA-00984: column not allowd here on procedure with input variables

我在向 sql 语句插入输入时似乎遇到了 ORA-00984 错误
PLSQL代码:

CREATE OR REPLACE PROCEDURE do_insättning (pnr_in in insättning.pnr%type, 
                                       knr_in in insättning.knr%type,
                                       belopp_in in insättning.belopp%type,
                                       datum_in in insättning.datum%type)
IS 
BEGIN
 INSERT INTO insättning 
 VALUES (radnr_seq,pnr_in,knr_in,belopp_in,datum_in);
END;

table的设计:

还有radnr_seq:

CREATE SEQUENCE radnr_seq START WITH 1 INCREMENT BY 1;

我尝试检查的是 sql statemtn 只插入一列,如下所示:

INSERT INTO insättning (radnr) values (radnr_seq);

以及检查无效值但没有结果。

您需要为序列调用 nextval :

CREATE OR REPLACE PROCEDURE do_insättning (pnr_in in insättning.pnr%type, 
                                   knr_in in insättning.knr%type,
                                   belopp_in in insättning.belopp%type,
                                   datum_in in insättning.datum%type)
IS 
BEGIN
 INSERT INTO insättning 
 VALUES (radnr_seq.NEXTVAL,pnr_in,knr_in,belopp_in,datum_in);
END;

您需要插入序号nextval radnr_seq.nextval.