存储过程:
CREATE PROC dbo.getUserRole
AS
create table tempt(userName varchar(20),userXM varchar(20),roleName varchar(6000))
insert into tempt
select b.userName,b.userXM,a.roleName from scopeManage_role a,scopeManage_user b
where charindex(','+rtrim(a.roleId)+',',','+b.roleId+',')>0
select  userName,userXM,roleName=dbo.f_str(userName) from tempt group by userName,userXM
drop table tempt
GO
函数:
function dbo.f_str(@userName varchar(20))
returns varchar(6000)
as
begin
    declare @ret varchar(6000)
    set @ret = ''
    select @ret = @ret+','+roleName from tempt where userName = @userName
    set @ret = stuff(@ret,1,1,'')
    return @ret 
end
调试JAVA:
DataControl db = new DataControl();
       try {
   callsta=db.getCon().prepareCall("{?=call getUserRole}");
   callsta.registerOutParameter(1, Types.INTEGER);
      System.out.print(callsta.execute());
      ResultSet re=callsta.getResultSet();
      while(re.next())
       {
       System.out.println(re.getString("roleName"));
       }
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
经测,System.out.print(callsta.execute())输出为false,但是在SQL2000中发现tempt表的确被创建了,而且记录集也对,请问这是怎么回事?