在java中处理oracle中的对象数组(嵌套表)
来源:互联网 发布:java 网上商城项目 编辑:程序博客网 时间:2024/05/22 00:05
在java中处理oracle中的对象数组(嵌套表):
sp文件:
------------------------------- Create Object Type ----------------------------------
create or replace type o_tmp as object (
userid varchar2(10),
username varchar2(20)
);
/
--------------------------- Create Nested Table Type On Base Object Type------------------------
create or replace type tmp_array is table of o_tmp;
/
---------------------------- Create a Package File -----------------------------------------------------------
create or replace package body test_object
as
procedure getObject(obj_arr out tmp_array)
is
tmp_obj o_tmp;
test_arr tmp_array := tmp_array();
n number := 1;
begin
loop
exit when n > 5;
tmp_obj := o_tmp('test1' || n, 'fuyue' || n);
test_arr.extend;
test_arr(n) := tmp_obj;
n := n + 1;
end loop;
obj_arr := test_arr;
for n in obj_arr.first .. obj_arr.last loop
tmp_obj := obj_arr(n);
dbms_output.put_line(tmp_obj.userid || ' --- ' || tmp_obj.username);
end loop;
end getObject;
end test_object;
/
create or replace type o_tmp as object (
userid varchar2(10),
username varchar2(20)
);
/
--------------------------- Create Nested Table Type On Base Object Type------------------------
create or replace type tmp_array is table of o_tmp;
/
---------------------------- Create a Package File -----------------------------------------------------------
create or replace package body test_object
as
procedure getObject(obj_arr out tmp_array)
is
tmp_obj o_tmp;
test_arr tmp_array := tmp_array();
n number := 1;
begin
loop
exit when n > 5;
tmp_obj := o_tmp('test1' || n, 'fuyue' || n);
test_arr.extend;
test_arr(n) := tmp_obj;
n := n + 1;
end loop;
obj_arr := test_arr;
for n in obj_arr.first .. obj_arr.last loop
tmp_obj := obj_arr(n);
dbms_output.put_line(tmp_obj.userid || ' --- ' || tmp_obj.username);
end loop;
end getObject;
end test_object;
/
java文件:
import java.sql.Array;
import java.sql.CallableStatement;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.driver.OracleTypes;
import oracle.sql.Datum;
import oracle.sql.STRUCT;
public class ObjArray ...{
private static String strDriver = "oracle.jdbc.driver.OracleDriver";
private static String strUrl = "jdbc:oracle:thin:@192.160.10.14:1521:avex";
/** *//**
* @param args
*/
public static void main(String[] args) ...{
// TODO Auto-generated method stub
test();
}
private static void test() ...{
try ...{
Class.forName(strDriver);
OracleConnection con = (OracleConnection) DriverManager
.getConnection(strUrl, "avex", "avex");
CallableStatement stmt = null;
stmt = con.prepareCall("{call test_object.getObject(?)}");
stmt.registerOutParameter(1, OracleTypes.ARRAY, "TMP_ARRAY");
stmt.execute();
Array outparam = stmt.getArray(1);
Object[] obj = (Object[]) outparam.getArray();
for (int i = 0; i < obj.length; i++) ...{
STRUCT struct = (STRUCT) obj[i];
Datum[] dt = struct.getOracleAttributes();
for (int n = 0; n < dt.length; n++) ...{
System.out.println(dt[n]);
}
}
} catch (ClassNotFoundException e) ...{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) ...{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.sql.CallableStatement;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.driver.OracleTypes;
import oracle.sql.Datum;
import oracle.sql.STRUCT;
public class ObjArray ...{
private static String strDriver = "oracle.jdbc.driver.OracleDriver";
private static String strUrl = "jdbc:oracle:thin:@192.160.10.14:1521:avex";
/** *//**
* @param args
*/
public static void main(String[] args) ...{
// TODO Auto-generated method stub
test();
}
private static void test() ...{
try ...{
Class.forName(strDriver);
OracleConnection con = (OracleConnection) DriverManager
.getConnection(strUrl, "avex", "avex");
CallableStatement stmt = null;
stmt = con.prepareCall("{call test_object.getObject(?)}");
stmt.registerOutParameter(1, OracleTypes.ARRAY, "TMP_ARRAY");
stmt.execute();
Array outparam = stmt.getArray(1);
Object[] obj = (Object[]) outparam.getArray();
for (int i = 0; i < obj.length; i++) ...{
STRUCT struct = (STRUCT) obj[i];
Datum[] dt = struct.getOracleAttributes();
for (int n = 0; n < dt.length; n++) ...{
System.out.println(dt[n]);
}
}
} catch (ClassNotFoundException e) ...{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) ...{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- 在java中处理oracle中的对象数组(嵌套表)
- 在java中处理oracle中的大对象
- 在java 中处理oracle中的大对象
- 在java中处理oracle中的Index-by表类型
- java 解析Json对象(嵌套json数组)
- java后台接受json数组中嵌套json数组的处理
- 在Oracle中使用java对象
- JNI中如何在本地代码C++中操作java中的基本类型的数组以及对象数组
- java 中的clone() 在数组中
- java中的对象数组
- java中的数组对象
- ORACLE 集合(关联数组,嵌套表,VARRAY)
- ORACLE中INDEX BY BINARY_INTEGER在联合数组中的使用
- java ;javascript;oracle 数组处理
- oracle:变长数组varray,嵌套表,集合
- ORACLE嵌套表和可变数组
- 在JSTL EL中处理java.util.Map,及嵌套List的情况
- 对象数组在Java & C++ 中实例化的区别
- 藏在代码里的“ILoveYou”
- [SQLObject官方文档] 列类型定义
- Windows Forms RichTextBox
- 汇编语言和C语言的混合编程
- Java的内存泄漏
- 在java中处理oracle中的对象数组(嵌套表)
- 一个能输出自身程序。
- 如何在Ubuntu6.1下配置XGL
- Python 新手之 Joseph 问题
- Java 专业人士必备的书籍和网站列表
- 学习方法
- JSP内建对象
- 编程创建文件夹的简单方法
- asp.net 获取当前目录...