There's some java class, loaded to Oracle database (version 11g), and pl/sql function-wrapper:
create or replace function getDataFromJava( in_uListOfSms in tStringArray )
return tStringArray
as language java name 'JavaClass.getSms( java.lang.String[]) return java.lang.String[]';
as you can see from example I try to match java datatype 'java.lang.String[]' to Oracle datatype:
create or replace type tStringArray as table of varchar2(4000);
and then when I run this code:
declare
in_array tStringArray := tStringArray();
out_array tStringArray := tStringArray();
begin
in_array.EXTEND;
in_array(1) := '1';
in_array.EXTEND;
in_array(2) := '2';
in_array.EXTEND;
in_array(3) := '3';
out_array := getDataFromJava( in_array );
for i in 1..3
loop
dbms_output.put_line(out_array(i));
end loop;
end;
as a result I get error:
ORA-00932: inconsistent datatypes expected a java type at argument position 2 to which some Oracle value can be converted got something else