有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用类型向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) 个答案