如何在Oracle中选择变量的值?

时间:2013-09-24 09:24:37

标签: sql oracle select select-into

我是Oracle的新手。如何设置此变量并显示其值?

declare nextId number;
begin  
        select HIBERNATE_SEQUENCE.nextval into nextId from dual;      
        select nextId from dual;
end;

它抱怨在这个SELECT语句中需要一个INTO子句。

2 个答案:

答案 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;