2013-09-24 21 views
5

我是Oracle新手。我怎樣才能設置這個變量並顯示它的值?如何在Oracle中選擇一個變量的值?

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

它抱怨說在這個SELECT語句中有一個INTO子句。

回答

10

如果你只是想知道該序列的下一個或電流值, 你可以簡單地使用SQL查詢:

SELECT HIBERNATE_SEQUENCE.nextval FROM dual; 
SELECT HIBERNATE_SEQUENCE.currval FROM dual; 

至於知道如何在PL/SQL進行(11克前):

SET SERVEROUTPUT ON 
DECLARE 
    nextId NUMBER; 
BEGIN 
    SELECT HIBERNATE_SEQUENCE.nextval INTO nextId FROM dual; 
    dbms_output.put_line(nextId); 
END; 

由於11克:它是在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

+0

+1但是自11g以來,您可以直接訪問PL/SQL中的序列。你可以用'nextID:= HIBERNATE_SEQUENCE.nextval;'替換第5行。 –

+0

雅謝謝@jonearles,我已經更新了答案。 – ajmalmhd04

6

在PL/SQL塊,你可以不寫SQL語句像

select nextId from dual; 

這就是爲什麼它顯示你的錯誤。順便說一句,你完全不需要這個聲明。要顯示它的輸出你應該使用 -

DBMS_OUTPUT.PUT_LINE(nextId); 

爲了能夠顯示它您需要編寫申報塊之前,下面的語句 -

SET SERVEROUTPUT ON;

+0

哥們你救了我的命,謝謝! – ExtremeSwat

相關問題