Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用类型向Oracle java函数返回多个值_Java_Oracle - Fatal编程技术网

使用类型向Oracle java函数返回多个值

使用类型向Oracle java函数返回多个值,java,oracle,Java,Oracle,无法使用Oracle类型从java向Oracle函数返回多个值 我创建了一个oracle类型和函数来调用java方法,其简单目的是交换oracle类型中两个字段的值。一切编译都很好,但是当我在Oracle中执行函数时,我只收到原始类型值 在Oracle中: 在as对象中创建或替换类型交换程序\u( a varchar2(20), b varchar2(20)); 创建或替换函数交换(s交换程序_in)返回交换程序_in 作为java语言 名称“swapperstring.swap(java.sq

无法使用Oracle类型从java向Oracle函数返回多个值

我创建了一个oracle类型和函数来调用java方法,其简单目的是交换oracle类型中两个字段的值。一切编译都很好,但是当我在Oracle中执行函数时,我只收到原始类型值

在Oracle中:

在as对象中创建或替换类型交换程序\u(
a varchar2(20),
b varchar2(20));
创建或替换函数交换(s交换程序_in)返回交换程序_in
作为java语言
名称“swapperstring.swap(java.sql.Struct)return java.sql.Struct”;
公共类交换字符串
{
公共静态java.sql.Struct交换(java.sql.Struct i)
{
对象[]attribs=null;
attribs=i.getAttributes();
attribs[0]=attribs[1];
返回i;
}
}
声明
s swapper_in
o交换器_in
开始
s:=swapper_in('stringone','stringtwo');
dbms_输出。输出线(s.a);
dbms_输出。输出线(s.b);
从“双”中选择交换到o;
dbms_输出。输出线(o.a);
dbms_输出。输出线(o.b);
结束;
输出:

stringone
二线
一串
二线
因为我在java代码中将第一个属性设置为等于第二个属性,所以我希望输出中两个字段的输出都是字符串2。但它似乎正在返回未经修改的原始对象

如何修改java.sql.Struct的属性或使用修改后的属性创建新对象