как выполнить процедуру, которая имеет varchar - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть пакет:

CREATE OR REPLACE PACKAGE BODY pack1
AS
    procedure proc1(column_1 in table1.column1%TYPE, column_2 in table1.column2%TYPE, results out varchar)

//code....
......
.....
....//
    END pack1;
/

Я хочу знать, как выполнить эту процедуру.Я знаю, что это глупый вопрос, но я очень смущен этим.Я попробовал это: exec pack1.proc1(123,'abc') Но это не работает.Подскажите пожалуйста как выполнить это

1 Ответ

0 голосов
/ 30 ноября 2018

Вы можете использовать переменную связывания в SQL * Plus, чтобы получить результаты и отобразить их, используя PRINT

VARIABLE v_result VARCHAR2
EXECUTE pack1.proc1(123, 'abc', :v_result); --note the colon.
PRINT v_result   --display the results.

Если вы вызываете ее из блока PL / SQL или другой процедуры, выможет просто отобразить его, используя DBMS_OUTPUT.PUT_LINE()

SET SERVEROUTPUT ON
DECLARE
  l_results VARCHAR2(20);
BEGIN
 pack1.proc1(123, 'abc', l_results);
DBMS_OUTPUT.PUT_LINE(l_results);
END;
/

Примечание : используйте VARCHAR2 вместо VARCHAR в качестве типа данных для параметра процедуры results

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