измените на использование 2 определенных переменных - PullRequest
0 голосов
/ 08 февраля 2011

Я хочу изменить это ..

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 Ответ

1 голос
/ 08 февраля 2011

Объявление VARIABLE должно выполняться вне блока 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...