
在Oracle存储过程中,我想通过游标把数据集的一部分数据返回,我怎么能够做到。
CREATEORREPLACEPACKAGEcreatePagesISTYPEpage_currISREFCURSOR;PROCEDUREpages(strSqlINVA...
CREATE OR REPLACE PACKAGE createPages IS
TYPE page_curr IS REF CURSOR;
PROCEDURE pages
(
strSql IN VARCHAR2,
pageIndex IN NUMBER,
pageSize IN NUMBER,
rowsCount OUT NUMBER,
pageData OUT page_curr
);
END createPages;
CREATE OR REPLACE PACKAGE BODY createPages AS
PROCEDURE pages
(
strSql IN VARCHAR2,
pageIndex IN NUMBER,
pageSize IN NUMBER,
rowsCount OUT NUMBER,
pageData OUT page_curr
)
IS
tempData page_curr;
currIndex NUMBER;
BEGIN
currIndex:=0;
OPEN tempData FOR strSql;
LOOP
currIndex:=currIndex+1;
FETCH tempData INTO pageData;
END LOOP;
rowsCount:=currIndex;
END pages;
END createPages;
目前pageIndex和pageSize还没有用到。用JDBC调用总是在FETCH tempData INTO pageData;出现错误:ORA-00932: 不一致的数据类型: 要求 - 得到的却是 -
谁能告诉我为什么? 展开
TYPE page_curr IS REF CURSOR;
PROCEDURE pages
(
strSql IN VARCHAR2,
pageIndex IN NUMBER,
pageSize IN NUMBER,
rowsCount OUT NUMBER,
pageData OUT page_curr
);
END createPages;
CREATE OR REPLACE PACKAGE BODY createPages AS
PROCEDURE pages
(
strSql IN VARCHAR2,
pageIndex IN NUMBER,
pageSize IN NUMBER,
rowsCount OUT NUMBER,
pageData OUT page_curr
)
IS
tempData page_curr;
currIndex NUMBER;
BEGIN
currIndex:=0;
OPEN tempData FOR strSql;
LOOP
currIndex:=currIndex+1;
FETCH tempData INTO pageData;
END LOOP;
rowsCount:=currIndex;
END pages;
END createPages;
目前pageIndex和pageSize还没有用到。用JDBC调用总是在FETCH tempData INTO pageData;出现错误:ORA-00932: 不一致的数据类型: 要求 - 得到的却是 -
谁能告诉我为什么? 展开
2个回答
展开全部
--pageData OUT page_curr
--FETCH tempData INTO pageData;
pageDate是一个游标,把一个值赋值给一个游标,这个肯定会报错的。
--FETCH tempData INTO pageData;
pageDate是一个游标,把一个值赋值给一个游标,这个肯定会报错的。
追问
那我怎么才能达到,把一个游标的部分数据集(比如中间某一段的10条数据),放到另外一个游标中。实际上我是想实现分页。输入输出值如上面的存储过程。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以取出数据后一个一个赋值
追问
我只知道一个Sql,不知道表名和里面有多少字段,怎么一个一个赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |