使用类型向Oracle java函数返回多个值
无法使用Oracle类型从java向Oracle函数返回多个值
我创建了一个oracle类型&;函数调用java方法,其简单目的是交换Oracle类型中两个字段的值。一切都可以正常编译,但当我在Oracle中执行该函数时,只会收到原始类型值
在甲骨文中:
create or replace type swapper_in as object (
a varchar2(20),
b varchar2(20) );
create or replace function swapstring (s swapper_in) return swapper_in
as language java
name 'swapperstring.swap(java.sql.Struct) return java.sql.Struct';
public class swapperstring
{
public static java.sql.Struct swap( java.sql.Struct i )
{
Object[] attribs=null;
attribs = i.getAttributes();
attribs[0] = attribs[1];
return i;
}
}
declare
s swapper_in
o swapper_in
begin
s := swapper_in('String One', 'String Two');
dbms_output.put_line( s.a );
dbms_output.put_line( s.b );
select swapstring(s) into o from dual;
dbms_output.put_line( o.a );
dbms_output.put_line( o.b );
end;
输出:
String One
String Two
String One
String Two
因为我在java代码中将第一个属性设置为等于第二个属性,所以我希望输出中两个字段的输出都是字符串2。但它似乎正在返回未经修改的原始对象
如何修改java的属性。sql。构造或创建具有修改属性的新对象
共 (0) 个答案