SQL Server中的存储过程是返回是一个结果集,在java中怎么样才能获取这个结果集?
在ORACLE中可以获取返回游标的结果,在SQL SERVER中我试过了java.sql.other好象取不到结果

解决方案 »

  1.   

    在sql server中比oracle还要省事,因为sqlserver的存储过程可以直接返回结果集;而oracle必须使用ref cursor。String sql = "{call sp_test(?,?)}";
    CallableStatement proc = conn.prepareCall(sql);
    proc.setString(1, s_year);
    proc.setString(2, s_month);

    ResultSet rs = proc.executeQuery();
      

  2.   

    请问怎么获取返回值和output参数呢!
      

  3.   

    但是,如果 存储过程中使用了临时表比如CREATE PROCEDURE test 
    AS
    select * into #table1 from table1 
    select * from #table1 
    GO会报这样一种错误 java.sql.SQLException: Was expecting a result set请问如何解决呢 ?
      

  4.   

    楼上说得没有。。在MS sqlserver 中你不管这么多,调用了存储过程,然后
    CallableStatement proc = conn.prepareCall(sql); //借楼上的ResultSet rec1=(ResultSet)proc.getObject(1);
    ResultSet rec2=(ResultSet)proc.getObject(2);这样好像都行。如果你想以游标的方式获得记录集,请使用用JTDS驱动。。很好用的。
      

  5.   

    你好,出现java.sql.SQLException: Was expecting a result set这种错误是因为返回的结果集为空。为方便使用,一般的JDBC都将这个异常忽略,但是MS SQL具体怎么处理我没有验证过。所以,为了程序严格,可以这么处理:
    if(proc.executeQuery()){
       ResultSet rs = proc.getResultSet();
        while(rs.next()){
            //处理
        }
    }