最近在看韩顺平讲解的oracle  
一样的代码  
他可以成功,但是我使用的时候报错
网上有人说可能是驱动不匹配
最好什么版本的oracl用对应的驱动
我也不知道我的jdbc驱动是什么版本视频链接http://v.youku.com/v_playlist/f4189118o1p28.html
在40分钟处  往后走是这个例子
使用的表是scott用户中的emp表
代码在二楼贴出
错误如下图

解决方案 »

  1.   


      --创建一个包,在该包中,我定游标类型 test_cursor
        create or replace package testpackage as
        type test_cursor is ref cursor;
        end testpackage;
        
        --创建过程
        create or replace procedure sp_pro14
        (spNo in number,p_cursor out testpackage.test_cursor) is
        begin
          open p_cursor for select * from emp where deptno=spNo;
        end;
      

  2.   

    import java.sql.*;
    public class Test2 { public static void main(String[] args) {
    // TODO Auto-generated method stub
    try{ Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","SCOTT","m123");

        CallableStatement cs=conn.prepareCall("{call sp_pro14(?,?)}");
     
       //第三种    游标方式
        cs.setInt(1, 20);
        cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);    cs.execute();
        ResultSet rs= (ResultSet)cs.getObject(2);
        while(rs.next())
        {
         System.out.println(rs.getInt(1)+" "+rs.getString(2));
        
        }
       conn.close();
        cs.close();
    }catch(Exception e){e.printStackTrace();} }}
      

  3.   

    没有问题啊,你用的是什么驱动?
    %ORACLE_HOME%\jdbc\lib\classes12.jar
      

  4.   

    驱动能发给我么,估计我这驱动是10G以前的版本
    qq 35320766邮箱谢谢