在 pl/sql 块中声明变量

mnk*_*00n 2 sql variables plsql declare

我正在尝试按照本指南创建pl/sql块,但在SET orderNumberSEQ.... 我究竟做错了什么?

declare
orderNumberSEQ number(5);
userid varchar(20);

begin
insert into bs_orders (userid, ono, timepurchased)
values('lilith', orderNum_seq.NEXTVAL,(SELECT current_timestamp FROM dual));

SET orderNumberSEQ := orderNum_seq.CURRVAL;

SELECT userid FROM bs_orders
where ono = orderNumberSEQ;
end;
/
Run Code Online (Sandbox Code Playgroud)

zer*_*kms 5

您不需要使用SET. 只是

SELECT orderNum_seq.CURRVAL INTO orderNumberSEQ FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

会做的伎俩。或者,如果您使用oracle11

orderNumberSEQ := orderNum_seq.CURRVAL;
Run Code Online (Sandbox Code Playgroud)