您的位置:首页 > 数据库 > Oracle

JDBC 调用 oracle 存数过程 返回复合类型数据

2010-09-26 18:47 453 查看
先顶一个一个新的Object类型 emptype



create or replace type emptype as object
(
  eno  number(4),
  ename varchar2(20)
);




定义存储过程 返回一个远程游标 ref cursor



CREATE OR REPLACE PROCEDURE "PRO_ADD_EMP"
(ref_cur out sys_refcursor)
is
   emp emptype := emptype(11,'xxxx');
begin
   open ref_cur for 
         select emp.eno,emp.ename from dual;
end pro_add_emp;




String username = "scott";
		String password = "tiger";
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
		String driver = "oracle.jdbc.driver.OracleDriver";
		Class.forName(driver);
		Connection conn = DriverManager.getConnection(url,username,password);
		System.out.println(conn);
		
		CallableStatement cstmt = (OracleCallableStatement) conn.prepareCall("{call PRO_ADD_EMP(?) }");
		
		cstmt.registerOutParameter(1, OracleTypes.CURSOR);
		
        cstmt.execute();
        ResultSet rs = (ResultSet) cstmt.getObject(1);
        while(rs.next()){
        	System.out.println(rs.getString(1));
        	System.out.println(rs.getString(2));
        }




返回一个 ResultSet 类型



ResultSet rs = (ResultSet) cstmt.getObject(1);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: