Самым простым способом из SQL * Plus или SQL Developer это с variable
и print
:
var deptno number
var result refcursor
exec :deptno := 10;
exec demo_pckg.demo_proc(:deptno, :result);
print result
Или:
var result refcursor
declare
deptno emplyees.department_id%type;;
begin
deptno := 10;
demo_pckg.demo_proc(deptno, :result);
end;
/
print result
result
рассматривается в качестве переменной связывания я n вызов процедуры, поэтому он имеет префикс :
, но он является родной переменной SQL * Plus, поэтому он не имеет одного для вызова print
. Вы можете запустить либо в SQL * Plus, либо в виде скрипта в SQL Developer, который отобразит результаты в окне вывода сценария.
Вы можете скорректировать значение deptno
в вызове процедуры в любом случае, конечно, вместо того, чтобы перетаскивать переменную для ее хранения.
Если вы вызываете это из Java или какой-либо другой клиентской программы, вы можете обрабатывать свой OUT
курсор, как и любой другой набор результатов.
Вы также можете объявить result
как sys_refcursor
в своей процедуре, а не объявлять свой собственный тип.
Что вы подразумеваете под «печатью»? Отобразить набор результатов в sqlplus? Что-то другое? – Mat