我是Oracle的新手。如何设置此变量并显示其值?
declare nextId number;
begin
select HIBERNATE_SEQUENCE.nextval into nextId from dual;
select nextId from dual;
end;
它抱怨在这个SELECT语句中需要一个INTO子句。
答案 0 :(得分:11)
如果您只想知道序列的下一个或当前值, 你可以简单地使用sql查询:
SELECT HIBERNATE_SEQUENCE.nextval FROM dual;
SELECT HIBERNATE_SEQUENCE.currval FROM dual;
至于知道如何在pl / sql(11g之前)中继续:
SET SERVEROUTPUT ON
DECLARE
nextId NUMBER;
BEGIN
SELECT HIBERNATE_SEQUENCE.nextval INTO nextId FROM dual;
dbms_output.put_line(nextId);
END;
从11g开始:它是在plsql中使用的更简化的序列:
SET serveroutput ON
DECLARE
nextId NUMBER := HIBERNATE_SEQUENCE.nextval;
BEGIN
dbms_output.put_line(nextId);
END;
或只是
BEGIN
dbms_output.put_line(HIBERNATE_SEQUENCE.nextval);
END;
更多详情:Click here
答案 1 :(得分:7)
在pl / sql块中,您不能编写类似
的SQL语句select nextId from dual;
这就是为什么它会向您显示错误。顺便说一下,你完全不需要这个陈述。要将其显示为输出,您应该使用 -
DBMS_OUTPUT.PUT_LINE(nextId);
为了能够显示它,你需要在声明块之前写下面的语句 -
SET SERVEROUTPUT ON;