#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
, поскольку они являются выходными параметрами.