我是甲骨文的新手。如何设置此变量并显示其值?
declare nextId number;
begin
select HIBERNATE_SEQUENCE.nextval into nextId from dual;
select nextId from dual;
end;
它抱怨在这个 SELECT 语句中需要一个 INTO 子句。
我是甲骨文的新手。如何设置此变量并显示其值?
declare nextId number;
begin
select HIBERNATE_SEQUENCE.nextval into nextId from dual;
select nextId from dual;
end;
它抱怨在这个 SELECT 语句中需要一个 INTO 子句。
如果您只想知道序列的下一个或当前值,您可以简单地使用 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;
更多详情:点击这里
在 pl/sql 块中,您不能编写类似的 SQL 语句
select nextId from dual;
这就是它向您显示错误的原因。顺便说一句,您完全不需要此声明。要将其显示为输出,您应该使用 -
DBMS_OUTPUT.PUT_LINE(nextId);
为了能够显示它,您需要在声明块之前编写以下语句 -
设置服务器输出;