You are on page 1of 2

---------------------------------------------------------------------------------------------------Oracle:

---------------------------------------------------------------------------------------------------SQL> create or replace type string_array as table of varchar2(100);


2 /
Type created.
SQL>
r2
2
3
4
5
6
7
8
9
10
11
12
13
14

create or replace function to_string(p_array in string_array) return varcha


as
l_string varchar2(32767);
i binary_integer;
begin
i := p_array.first();
while i is not null loop
l_string := l_string || p_array(i) || ';';
i := p_array.next(i);
end loop;
l_string := rtrim(l_string, ';');
return l_string;
end;
/

Function created.
---------------------------------------------------------------------------------------------------Java:
---------------------------------------------------------------------------------------------------import java.sql.*;
import oracle.jdbc.*;
import oracle.sql.*;
public class ArrayTest {
public static void main(String[] args) throws SQLException {
DriverManager.registerDriver(new OracleDriver());
OracleConnection connection = (OracleConnection) DriverManager.getConnec
tion(...);
String[] elements = {"abc", "def", "geh"};
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("STRING_AR
RAY", connection);
ARRAY array = new ARRAY(descriptor, connection, elements);
OracleCallableStatement stmt = (OracleCallableStatement) connection.prep
areCall("{? = call to_string(?)}");
stmt.registerOutParameter(1, Types.VARCHAR);
stmt.setARRAY(2, array);
stmt.execute();
String result = stmt.getString(1);
System.out.println("to_string returned: " + result);

}
}

You might also like