2011-02-08 12 views
0

を使用する。..変更私はこれを変更したい2つの定義された変数

variable myref REFCURSOR 
begin 
    OPEN :myref FOR 
    select sysdate,12345 xid from dual 
     union all 
    select sysdate,67890 xid from dual; 
end; 
/
print myref 

XID列(12345および67890)のための2つの定義された変数を使用します。私はちょうど上記のコードで動作する構文を取得するように見えることはできません。この

declare 
myNum1 NUMBER:=12345 
myNum2 NUMBER:=67890 

variable myref REFCURSOR 
begin 
    OPEN :myref FOR 
    select sysdate,|| myNum1 || xid from dual 
     union all 
    select sysdate,|| myNum2 || xid from dual; 
end; 
/
print myref 

答えて

1

変数宣言のような

何かが、それは置換変数を作成するには、SQL * Plusのコマンドがあるので、PL/SQLブロックの外側で行わなければなりません。数値変数は、PL/SQLブロック内で宣言しても他のPL/SQL変数のように参照することができ

SQL> variable myref REFCURSOR 
SQL> declare 
    2 myNum1 number := 12345; 
    3 myNum2 number := 67890; 
    4 begin 
    5 open :myref 
    6  for 
    7  select sysdate, myNum1 xid from dual 
    8  union all 
    9  select sysdate, myNum2 from dual; 
10 end; 
11/

PL/SQL procedure successfully completed. 

SQL> print myref; 

SYSDATE   XID 
--------- ---------- 
08-FEB-11  12345 
08-FEB-11  67890 
+0

申し訳ありませんが、私は質問が – user584583

+0

user584583 @より明確になるように更新 - 追加の情報を反映するために私の答えを変更しました。 –

+0

私は今どこで混乱しているのか分かります。ありがとうジャスティン! – user584583

関連する問題