专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle Exception

分页的存储过程返回记录总是出错

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
SQL code
CREATE OR REPLACE PROCEDURE PAGEDDATA

(

STARTINDEX  IN NUMBER,

ENDINDEX IN NUMBER

)

IS

BEGIN

SELECT  * FROM (SELECT ROWNUM R ,T1.* FROM TABLEB T1 WHERE ROWNUM<STARTINDEX+ENDINDEX) T2 WHERE T2.R>=STARTINDEX;

END PAGEDDATA;

/



总是提示编译有错,就是一个实现分页的存储过程,怎么回事?

------解决方法--------------------------------------------------------
CREATE OR REPLACE PROCEDURE PAGEDDATA
(
STARTINDEX  IN NUMBER,
ENDINDEX IN NUMBER,
cur out sys_refcursor
)
IS
BEGIN
open cur for
SELECT  * FROM (SELECT ROWNUM R ,T1.* FROM TABLEB T1 WHERE ROWNUM <STARTINDEX+ENDINDEX) T2 WHERE T2.R>=STARTINDEX;
END PAGEDDATA;

不能在过程中单纯地运行查询语句
可以用游标将结果集输出
------解决方法--------------------------------------------------------
如果想在存储过程里输出的话
可以把用SELECT检索的回的记录保存到一个记录类型变量中
再使用DBMS_OUTPUT.PUT_LINE()函数进行输出
------解决方法--------------------------------------------------------
看到你的语句感觉怪怪的,怎么都没有输出呢,这相当于是什么事情都没做,在存储过程中是不能用select语句的,应该用select into语句代替的,into后面就是输出的。

    
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: