Основываясь на этом предыдущем вопросе о stackoverflow:
Выбрать тип таблицы Oracle из хранимой процедуры с помощью JDBC
Ответ дал нам пример параметра OUT с использованием Oracle getArray и java.sql.Datum. Но что, если я хочу указать параметр IN, который имеет тип данных Oracle TABLE?
CREATE OR REPLACE TYPE XXINV.XX_PROD_SRCH_RSLT_REC_TYPE IS OBJECT(
item_no VARCHAR2(30),
inventory_item_id NUMBER,
organization_id NUMBER,
item_description VARCHAR2(240),
item_long_description VARCHAR2(240),
cat_description VARCHAR2(240),
category_set_name VARCHAR2(240),
nla_flag VARCHAR2(1),
CONSTRUCTOR FUNCTION XX_PROD_SRCH_RSLT_REC_TYPE RETURN SELF AS RESULT,
MEMBER PROCEDURE log_prod_srch_rslt_rec_values (SELF IN XX_PROD_SRCH_RSLT_REC_TYPE) )
CREATE OR REPLACE TYPE xxinv.XX_PROD_SRCH_RSLT_TAB_TYPE AS TABLE OF XX_PROD_SRCH_RSLT_REC_TYPE;
А мой SP это:
XX_PART_RESEARCH_PKG.GET_PARTS
(p_called_from IN VARCHAR2,
p_item_id IN NUMBER,
p_category_id IN NUMBER,
p_mnfg_part_id IN NUMBER,
p_item_desc IN VARCHAR2,
p_include_NLA_items IN VARCHAR2,
p_catl_group_id IN NUMBER,
p_catl_attributes IN XX_PROD_ATTR_TAB_TYPE,
x_srch_rslt IN XX_PROD_SRCH_RSLT_TAB_TYPE,
x_return_status OUT VARCHAR2,
x_returb_msg OUT VARCHAR2
)
где XX _PROD _ATTR _TAB _TYPE это таблица как параметр IN.
Как указать это в Java? Я использую Oracle 10g версии 2.