用ORACLE的PLSQL写的存储过程,返回一个游标类型来指向打开的结果集,在JAVA代码里面,对存储过程的这个返回游标进行接收,请问用什么类型?
假如是这样的:
存储过程:
    CREATE OR REPLACE PROCEDURE "MY"."TESTPROC" (IDIN IN NUMBER,CUR OUT SYS_REFCURSOR)
    AS 
    BEGIN
         OPEN CUR FOR SELECT * FROM MYTABLE WHERE ID=IDIN;
    END;
    /
java代码:
    CallableStatement cstm = conn.prepareCall("CALL TESTPROC(?,?)");
    cstm.setInt(1,10);
    cstm.registerOutParameter(2,oracle.jdbc.Types.CURSOR);
    cstm.execute();
    ResultSet rs = (ResultSet)cstm.getObject(2);
    ....
    请问的就是cstm.registerOutParameter(2,oracle.jdbc.Types.CURSOR);中的这个类型我不可以用oracle.jdbc.Types.CURSOR,必须要用java.sql.jdbc.Types中的类型,因为我的项目要兼容mysql数据库,不能依赖于oracle驱动里面的类型。我该用哪个类型呢?请问?

解决方案 »

  1.   

    事实这个吧:
    CallableStatement cstm = conn.prepareCall("{CALL TESTPROC(?,?)}"); 
    cstm.setInt(1,10); 
    cstm.registerOutParameter(2,Types.CURSOR); 
    cstm.execute(); 
    ResultSet rs = (ResultSet)cstm.getObject(2); 
      

  2.   

    这个还调用的ORACLE的驱动里面的啊
      

  3.   


    关注下。你可以用ResultSet进行接受,也可以用中间件的Map进行接受啊。