У меня есть следующая процедура
CREATE OR REPLACE PROCEDURE GetAddress(P_JSON_CLOB_IN IN CLOB, P_JSON_OBJECT_OUT OUT JSON_OBJECT_T)
AS
V_JSON_OBJ JSON_OBJECT_T := JSON_OBJECT_T.parse(P_JSON_CLOB_IN);
V_ID CUSTOMERS.ID%TYPE;
V_TYPE ADDRESSES.TYPE%TYPE;
V_ADR ADDRESSES%ROWTYPE;
BEGIN
V_ID := V_JSON_OBJ.GET_STRING('id');
V_TYPE := V_JSON_OBJ.GET_STRING('type');
SELECT a.* INTO V_ADR FROM ADDRESSES a
INNER JOIN CUSTOMERS c ON c.ID=a.PEOPLEID
WHERE c.ID = V_ID
AND a.TYPE = V_TYPE;
P_JSON_OBJECT_OUT.put('address1',TO_CHAR(V_ADR.ADDRESS1));
P_JSON_OBJECT_OUT.put('address2',TO_CHAR(V_ADR.ADDRESS2));
P_JSON_OBJECT_OUT.put('zipmask',TO_CHAR(V_ADR.ZIPMASK));
P_JSON_OBJECT_OUT.put('city',TO_CHAR(V_ADR.CITY));
P_JSON_OBJECT_OUT.put('countryCode',TO_CHAR(V_ADR.COUNTRYCODE));
EXCEPTION
WHEN NO_DATA_FOUND THEN
P_JSON_OBJECT_OUT.put('error','NO DATA FOUND');
END;
Он успешно компилируется, однако, когда вызвано возвращает исключение оракула "ORA-30625 Диспетчер метода по аргументу NULL SELF запрещен" в строке 21. Я предполагаю, что ошибка происходит, потому чтопараметр P_JSON_OBJECT_OUT необходимо инициализировать перед добавлением ключа / значения?Как мне этого добиться?
Спасибо