如下这个存储过程(sql2000)create PROCEDURE a
as 
declare @str varchar(1000)
set @str='select * from table'
exec(@str)要怎样才能取得这个存储过程中exec(@str)里的值....也就是说这个存储过程执行的时候会从table中取出所有值..那我在java程序中调用这个存储过程怎样取里面所有的值

解决方案 »

  1.   

    mssql存储过程可以直接返回结果集:String sql = "{call a()}";
    CallableStatement proc = conn.prepareCall(sql);
    ResultSet rs = proc.executeQuery();rs就是你所要的。
      

  2.   

    給你個帶參數的例子       String str = "{call GetRecordFromPageU(?,?,?,?,?,?,?)}";
            CallableStatement sqlstmt=conn.prepareCall(str);
    sqlstmt.setString(1,"cmm_V_shop_import_cal");
    sqlstmt.setString(2,"id");
    sqlstmt.setInt(3,15);
    sqlstmt.setInt(4,curp);
    sqlstmt.setInt(5,0);
    sqlstmt.setInt(6,1);
    sqlstmt.setString(7,where);
    sqlstmt.execute();
    rs=sqlstmt.getResultSet();