Использование переменной, объявленной в разделе «Объявление» (анонимный блок) - PullRequest
0 голосов
/ 19 апреля 2011

Я хочу использовать объявленную переменную, которую я объявляю в разделе «Объявление», в разделе «Начало конца» анонимного блока без использования в операторе. Это возможно? * 1001 например *

Declare
   week number :=6;
Begin
   select col1,col2+week from table;
end; 

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

Поскольку анонимный блок не может возвращать какие-либо данные вызывающей стороне, что бы вы хотели, если бы этот блок был выполнен?Вы не можете вернуть курсор вызывающей стороне, поэтому, если вы не выделяете данные в локальные переменные, я не уверен, что вы хотите, чтобы это произошло.

Потенциально, вы просто хотите сценарий SQL * Plusт.е.

SQL> variable week number;
SQL> exec :week := 6;

PL/SQL procedure successfully completed.

SQL> ed
Wrote file afiedt.buf

  1* select empno, hiredate+:week from emp
SQL> /

     EMPNO HIREDATE+
---------- ---------
      7369 23-DEC-80
      7499 26-FEB-81
      7521 28-FEB-81
      7566 08-APR-81
      7654 04-OCT-81
      7698 07-MAY-81
      7782 15-JUN-81
      7788 25-APR-87
      7839 23-NOV-81
      7844 14-SEP-81
      7876 29-MAY-87

     EMPNO HIREDATE+
---------- ---------
      7900 09-DEC-81
      7902 09-DEC-81
      7934 29-JAN-82
      1234

15 rows selected.
0 голосов
/ 19 апреля 2011

Невозможно использовать select в блоке oracle pl-sql без использования INTO
потому что оракул не принимает оператор выбора без использования оператора into Итак, ваш блок после модификации станет таким:

Declare
   week number :=6;
   Column1 table.col1%type;
   Column2 table.col2%type;
Begin
   select col1,col2+week into Column1, Column2 from table;
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...