【发布时间】:2015-02-24 00:47:39
【问题描述】:
有一些 java 类,加载到 Oracle 数据库(版本 11g)和 pl/sql 函数包装器:
create or replace function getDataFromJava( in_uListOfSms in tStringArray )
return tStringArray
as language java name 'JavaClass.getSms( java.lang.String[]) return java.lang.String[]';
从示例中可以看出,我尝试将 java 数据类型“java.lang.String[]”与 Oracle 数据类型匹配:
create or replace type tStringArray as table of varchar2(4000);
然后当我运行这段代码时:
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;
结果我得到错误:
ORA-00932: inconsistent datatypes expected a java type at argument position 2 to which some Oracle value can be converted got something else
【问题讨论】:
标签: java oracle type-conversion