8

SQL Server では、このようにローカル変数を定義できます。

declare @id number := 1000

select * from tbl_A where id = @id;
select * from tbl_B where id = @id;

とても便利です。私は同じことをしようとしましたPL/SQLが、うまくいきません。

DECLARE id number;
select 1000 into id from dual;

似たようなことをする方法を知っていますか?最も簡単な方法が私の目的です。

4

5 に答える 5

12

PL/SQL でローカル変数を定義する場合は、完全な PL/SQL ブロックが必要です。

DECLARE
  id NUMBER;
BEGIN
  SELECT 1000
    INTO id
    FROM dual;
END;

あるいは単に

DECLARE
  id NUMBER := 1000;
BEGIN
  <<do something that uses the local variable>>
END;

SQL*Plus で変数を宣言する場合

SQL> variable id number
SQL> begin
       select 1000 into :id from dual;
     end;
     /

SQL> print id

        ID
----------
      1000

SQL> SELECT * FROM tbl_a WHERE id = :id
于 2012-07-02T17:55:54.113 に答える
2

Oracle SQL のソリューション

DEF x = foo
SELECT '&x' FROM dual;

結果は次のようになります。foo

注意: 変数は実行後も値を保持します。変数をクリアするには run UNDEFINE x.

于 2015-04-21T15:12:07.963 に答える