Я создал объект того же типа, что и в другой схеме,
Нет абсолютно никакой необходимости создавать другой Type
. Вы можете Grant
выполнить для типа повторное использование того же типа в другой схеме. См. Демонстрацию
Schema_A:
Create or replace type test_Obj is OBJECT
(
name varchar2(500),
currency varchar2(500)
id number
);
/
CREATE OR REPLACE TYPE V_TST_OBJ IS TABLE OF test_Obj;
/
GRANT EXECUTE ON test_obj TO Schema_B;
GRANT EXECUTE ON v_tst_obj TO Schema_B;
Schema_B:
PROCEDURE get_test_data(
in_param IN VARCHAR2
out_param OUT VARCHAR2)
AS
v_tst_obj Schema_A.v_tst_obj := schema_A.v_tst_obj() ;
BEGIN
schema1.testpackage.getdata@db_link(
in_param => in_param,
test_obj => v_tst_obj,
);
--logic & exceptions
END get_test_data;