web-dev-qa-db-ja.com

Oracleで変数の値を選択するにはどうすればよいですか?

Oracleは初めてです。この変数を設定してその値を表示するにはどうすればよいですか?

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

このSELECTステートメントでINTO句が必要であると文句を言います。

8
The Light

シーケンスの次の値または現在の値のみを知りたい場合は、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;

詳細: ここをクリック

11
ajmalmhd04

Pl/sqlブロックでは、次のようなSQL文を記述できません。

select nextId from dual;

それがあなたにエラーを示している理由です。ちなみに、このステートメントはまったく必要ありません。出力として表示するには、次を使用する必要があります-

DBMS_OUTPUT.PUT_LINE(nextId);

それを表示できるようにするには、宣言ブロックの前に以下のステートメントを書く必要があります-

SERVEROUTPUTをオンに設定します。

7
Aditya Kakirde