Вы не можете связать это напрямую. Есть способ передать массив в качестве параметра. Я понятия не имею, что вы хотите сделать с ним на стороне базы данных, поэтому это может вам не помочь.
По сути, вы должны создать вложенный тип таблицы в базе данных; построить объект Java на основе этого типа, содержащий данные из вашего массива; и передать это в качестве параметра.
Если вы создали эти объекты в базе данных:
CREATE OR REPLACE TYPE my_nested_table IS TABLE OF VARCHAR2(20);
CREATE TABLE my_table (a my_nested_table) NESTED TABLE a STORE AS my_table_a;
Тогда вы можете написать код Java следующим образом:
String[] insertvalues = { "a", "b", "c" };
PreparedStatement p = conn.prepareStatement("INSERT INTO my_table VALUES( ? )");
ARRAY insertParameter = new ARRAY( a_desc, conn, insertvalues );
p.setArray( 1, insertParameter );
p.execute();
Результаты в Oracle выглядят так:
dev> select * from my_table;
A
--------------------------------------------------------------------------------
MY_NESTED_TABLE('a', 'b', 'c')