Oracle的分页是一个伟大的SQL语句
-功能描述:
作者:
-写作日期:
如果你返回的结果集,您必须使用自定义光标return_cursor
是——还是
-变量定义区域
v_cpagecount整数;-数据显示总人数
v_cpage整数;-显示当前页的数据
开始
-存储过程的主题
如果输入新闻号码是空的,那么
开始
-输出总行号
选择最大(行号)为输出的行数(
SELECT * FROM xtnews 1 = 1
是空的或(输入新闻话题的新闻不是零和的主题是输入v_xwzt如输入%| |新闻主题| | '%')
输入和释放时间为空或(输入发布时间是无效的,d_fbsj = to_date(输入发布时间,'yyyy-mm-dd '))
那里是空的)或(新闻内容的输入是无效的,v_xwnr新闻如输入%| |新闻内容| | '%');
-输出页中的页数
选择细胞(输出线总人数/输入/页码)从双成输出页面的页码;
当no_data_found则例外
无效的;
结束;
-计算要在当前页码中显示的数据行数
如果输入当前页号不是NULL,那么
-夏葩格
如果输入或不= 1然后
-计算当前页获取数据
v_cpage:=(输入当前页号+ 1);
-最后一页
如果v_cpage >输出页面的页码然后
v_cpage:=输出页面的页码;
最后如果;
最后如果;
-尚葩格
如果输入或不= 0然后
-计算当前页获取数据
v_cpage:=(输入当前页号- 1);
-第一页
如果v_cpage = 0
v_cpage:= 1;
最后如果;
最后如果;
-要显示的数据行数
v_cpagecount:= v_cpage *输入每个页面的行数;
最后如果;
最后如果;
-执行查询以获得要显示的数据
开始
打开return_cursor为
从中选择NTS(*)
从中选择NT *
该行号顺序号,N *(
从中选择*(
从中选择*(
选择
i_id消息数,
v_xwzt新闻主题,
v_xwnr新闻内容,
d_fbsj释放时间,
d_yxsj有效时间,
v_fbbm发布部门
从xtnews
1 = 1(输入为空或新闻主题的主题不是零和新闻输入v_xwzt如输入%| |新闻主题| | '%')
那里是空的)或(新闻内容的输入是无效的,这样的新闻消息内容输入%| |新闻内容| | '%')
)在输入发布时间为空或(输入发布时间不是零和释放时间= to_date(输入发布时间,'yyyy-mm-dd '))
)输入消息数为NULL或(输入新闻号码不为空,新闻号=输入新闻号码)
订单行号
NT在NT。v_cpagecount)DESC串口号<<秩序
NTS。序列号>(v_cpagecount -每页行数输入的序列号顺序);
当no_data_found则例外
无效的;
结束;
-输出最后计算的当前页数
如果输入的消息数为v_cpage不为空,然后
输出当前页号:= v_cpage;
最后如果;
结束;