2


将输入插入到 sql 语句PLSQL 代码时,我似乎收到 ORA-00984 错误 :

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;

表的设计:
餐桌设计

还有 radnr_seq:

CREATE SEQUENCE radnr_seq START WITH 1 INCREMENT BY 1;

我尝试检查的是 sql statemtn 仅插入到这样的一列:

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

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

4

2 回答 2

3

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

于 2018-04-19T15:32:33.357 回答
2

您需要为 sequence 调用 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;
于 2018-04-19T15:30:16.607 回答