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

ИЗМЕНЯЕМЫХ деклараций должно иметь место вне/SQL блока PL, так как это 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

+0

@ user584583 - Изменены мой ответ, чтобы отразить дополнительную информацию , –

+0

Я вижу, где я сейчас был смущен. Спасибо, Джастин! – user584583

Смежные вопросы