这是我的存储过程(存储过程没问题):
CREATE PROCEDURE page2
@p INT,--页数
@n INT, --每页条目数
@student_cursor CURSOR VARYING OUTPUT
AS
SET @student_cursor= CURSOR FOR SELECT TOP (@n) * FROM [user] AS t WHERE t.id NOT IN(SELECT TOP ((@p-1)*(@n)) id FROM [user]);
OPEN @student_cursor;
GO
在java后台调用:
CallableStatement c = connection.prepareCall("{call page2 (?,?,?)}");
c.setInt(1, 1);
c.setInt(2, 3);
c.registerOutParameter(3,Types.OTHER);//我不知道该用什么类型,就写个OTHER吧
c.execute();
resultSet = (ResultSet) c.getObject(3);
如果是Oracle,可以直接设置输出参数:c.registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR);
但是在sqlserver数据库上,我窒息了(顺带吐槽下:热出翔~~)··求大神带走
SQL?Server Cursor 存储过程
------解决方案--------------------