Мне удалось вызвать хранимую процедуру из пакета, что также объясняется в следующей ссылке .
Моя проблемаесли я не смог получить результат из DBMS_OUTPUT.PUT_LINE(TOTAL)
, где TOTAL
- это переменная, которую я хочу взять с type NUMBER .Поскольку процедура только обрабатывает и не возвращает значение в виде необработанного вывода (например, из select), в результате я получаю неопределенное значение.
Я также прочитал следующее ссылка но я все еще не могу получить TOTAL
.
Мой вопрос:
Можно ли получить TOTAL
значение из DBMS_OUTPUT.PUT_LINE(TOTAL)
, которое будет передано в TypeORM после выполнения запроса?
И если невозможно, как обработать или выполнить процедуру, чтобы можно было получить TOTAL
в return
выражении для функции (Было сказаночто это не хорошо) / другая хранимая процедура?
Для справки, я использовал один из следующих запросов в данный момент, чтобы иметь возможность получить результат от хранимой процедурыDBMS_OUTPUT.PUT_LINE
:
Первый:
BEGIN pkg_one.endpkg(:id, :adeius,:status,:aregate,:mapony, :total); END;
Второй:
DECLARE
ID NUMBER;
ADEIUS NUMBER;
STATUS NUMBER;
AREGATE VARCHAR2(200);
MAPONY NUMBER;
TOTAL NUMBER;
BEGIN
ID := :ID;
ADEIUS := :ADEIUS;
STATUS := :STATUS;
AREGATE := :AREGATE;
MAPONY := :MAPONY;
PKG_ONE.ENDPKG(
ID => ID,
ADEIUS => ADEIUS,
STATUS => STATUS,
AREGATE => AREGATE,
MAPONY => MAPONY,
TOTAL => TOTAL);
TOTAL := TOTAL;
--DBMS_OUTPUT.PUT_LINE(TOTAL); --either the initial procedure or the call TOTAL is the Result I want
END;
Обновлена рабочая функция.
CREATE OR REPLACE FUNCTION PTD (ID IN NUMBER,ADIEUS IN NUMBER ,STATUS IN NUMBER,AREGATE IN VARCHAR2,MAPONY IN NUMBER) RETURN VARCHAR2 AS TOTAL NUMBER;
BEGIN
PKG_ONE.ENDPKG(ID, ADIEUS,STATUS,AREGATE,MAPONY, TOTAL);
RETURN TOTAL;
END PTD;