Oracle pl/sql编程 25--调用返回结果集的存储过程

来源:互联网 发布:黑马校对软件多少钱 编辑:程序博客网 时间:2024/05/19 20:20

         对于查询多条数据我们需要将他放到一个游标中,这样我们就需要使用游标和存储过程,这就需要定义一个包

先定义包头

CREATE OR REPLACE PACKAGE mypack IS    TYPE mycursor IS REF CURSOR;    PROCEDURE myproc(outcursor IN OUT mycursor);    END mypack;
在定义包体

CREATE OR REPLACE PACKAGE BODY mypack IS       PROCEDURE myproc(        outcursor IN OUT mycursor    )    IS        BEGIN      OPEN outcursor FOR           SELECT*FROM emp WHERE deptno=10;           RETURN;           END myproc;           END;  

java代码,这里只要注意注册输出参数的的时候是数据类型是ORACLETYPE里面的cursor,取出来的时候取得是object 然后将他转成resutset


public static void main(String args[]){Connection conn;CallableStatement call;//加载驱动try {Class.forName("oracle.jdbc.driver.OracleDriver");//获得连接conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "m123");//各种操作call=conn.prepareCall("{call mypack.myproc(?)}");call.registerOutParameter(1, OracleTypes.CURSOR);;call.execute();ResultSet rs=(ResultSet)call.getObject(1);while(rs.next()){System.out.println(rs.getString("ename"));}//各种关} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

0 0
原创粉丝点击