2011-02-08 25 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 

使用2個定義的變量爲XID柱(12345和67890)。我似乎無法得到與上述代碼一起工作的語法。

像這樣

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

變量聲明具有取PL/SQL塊以外的地方,因爲它是一個SQL * Plus命令來創建一個替代變量。該數值變量可以在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 2011-02-08 19:46:33