Как запустить следующие инструкции Oracle exec в SQL Developer?

#sql #oracle

#sql #Oracle

Вопрос:

Я наткнулся на эти инструкции, которые должны выполняться в Oracle, однако я не уверен, как эти инструкции должны выполняться. Пробовал запускать их как SQL, но не работает.

 variable output1 NUMBER;
variable output2 VARCHAR2(100);

exec rp_orader_closure_pxkg.rp_exaec_close_SILvl_WKO('aaa',
                                                     '1',
                                                     '10aaa001a6414339',
                                                     :output1, :output2);
  

Комментарии:

1. Что означает «не работает»? Есть сообщения?

Ответ №1:

Я не уверен, что все команды SQLPlus работают в SQL Developer. Вы, безусловно, можете сделать это в анонимном блоке:

 DECLARE
    output1 NUMBER;
    output2 VARCHAR2(100);
BEGIN
    rp_orader_closure_pxkg.rp_exaec_close_SILvl_WKO('aaa', '1', 
        '10aaa001a6414339', output1, output2);
END;
  

Ответ №2:

У меня это работает нормально, SQL Developer v3.0.04. В окне скрипта я ввожу:

 create or replace package p as
procedure prc (p1 in varchar2, p2 in out varchar2);
end;
/
create or replace package body p as
procedure prc (p1 in varchar2, p2 in out varchar2) is
begin
  p2 := p1;
end prc;
end;
/
variable output2 VARCHAR2(100);

exec p.prc('aaa',:output2);

print output2;
  

В окне вывода скрипта:

 PACKAGE p compiled
PACKAGE BODY p compiled
anonymous block completed
OUTPUT2
---
aaa
  

Возможно, я что-то упускаю?

Ответ №3:

Просто потеряйте первые две строки и выполните только строку с exec в начале. Разработчик SQL запросит у вас значения переменных. Просто оставьте их NULL , поскольку они являются выходными параметрами.