select * from ...
union
select * from ...
union
select * from ...
这样才会是一个结果集,你的过程会返回唯一的一个结果集rs
ResultSet rs只是一个结果集
你分开执行select 语句应该是创建了3个结果集,但是后一个会覆盖掉你的前一个,你的call执行下来应该是返回最后一个结果集给你。
你试试ResultSet[] rs=con.prepareCall("{call Test}")这样会不会给你3个结果集
---------------
i think...

解决方案 »

  1.   

    补充一句:
    我上面的程序的执行结果是: 只能得到第一个记录集,
    打印的是第一个记录集中的记录。
    如果,在遍历第一个记录集后,
    call.getMoreResults();
    while(rs.next())
    {
        System.out.println(rs.getString(1));
    }
    得到是 第二个 记录集中的内容。
    但 call.getMoreResults()   的返回值却是 FALSE;
    不知道为什么???
      

  2.   

    你确认sqlserver的procedure可以返回多个resultset吗?或者你的procedure是不是写的不对呀。
      

  3.   

    To:leowu(leo) 
    可以确认 SQLServer 能返回多个记录集。