Как определить постоянную переменную в SQL * PLUS - PullRequest
0 голосов
/ 24 сентября 2008

Я пытаюсь сделать следующее в SQL*PLUS в ORACLE.

  • Создать переменную
  • Передать его как выходную переменную моему вызову метода
  • Вывести значение из выходной переменной

Я получаю

необъявленная переменная

ошибка. Я пытаюсь создать переменную, которая сохраняется в сессии, пока я не закрою окно SQL*PLUS.

variable subhandle number;
exec MYMETHOD - (CHANGE_SET => 'SYNC_SET', - DESCRIPTION => 'Change data for emp', 
                                           - SUBSCRIPTION_HANDLE => :subhandle);

print subhandle;

Ответы [ 3 ]

3 голосов
/ 24 сентября 2008

Все должно быть в порядке - проверьте, что вы тщательно сделали против этого:

SQL> create procedure myproc (p1 out number)
  2  is
  3  begin
  4     p1 := 42;
  5  end;
  6  /

Procedure created.

SQL> variable subhandle number
SQL> exec myproc(:subhandle)

PL/SQL procedure successfully completed.

SQL> print subhandle

 SUBHANDLE
----------
        42
0 голосов
/ 25 сентября 2008

Я не уверен, что это то, что вы ищете, но вы пробовали синтаксис &&variable? Вы могли бы сделать

select &&subhandle from dual

или что-то подобное в начале скрипта, тогда subhandle должно быть привязано к этому значению до конца сеанса.

0 голосов
/ 24 сентября 2008

Пожалуйста, вы можете опубликовать заново, но отформатируйте код с тегом code .... (т. Е. Кнопка 101 010) Я думаю, что появились дополнительные символы "-", что затрудняет интерпретацию.

Может быть также полезно увидеть, как SQL Plus сообщает об ошибке, если вы можете скопировать содержимое окна SQL Plus вместо этого или тоже?

Но это выглядит правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...