• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > oracle 分页 很棒的sql语句

oracle 分页 很棒的sql语句

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了oracle分页sql语句,oracle 分页sql,oracle sql分页查询,oracle分页查询语句,oracle分页语句等相关知识,希望本文的分享对您有所帮助
CREATE OR REPLACE PROCEDURE PROC6338196642095312503719(输入新闻主题 Varchar2,输入新闻内容 Varchar2,输入发布时间 Varchar2,输入当前页码 Number,输入每页行数 Number,输出当前页码 OUT Number,输出总行行数 OUT Number,输出总页页数 OUT Number,输入是否下页 Number,输入新闻编号 Varchar2,RETURN_CURSOR OUT CUSTOMTYPE.MYRCTYPE)
--功能描述:
--编写人:
--编写日期:

--如果返回结果集,必须使用自定义游标Return_Cursor
IS --OR AS

--变量定义区

v_cPageCount integer; -- 要显示的数据总行数
v_cPage integer; -- 要显示数据的当前页

BEGIN

--存储过程主体
if 输入新闻编号 is null then
begin
--- 输出总行行数
select max(rownum) into 输出总行行数 from(
select * from xtnews where 1=1
and 输入新闻主题 is null or (输入新闻主题 is not null and V_XWZT like '%'||输入新闻主题||'%')
and 输入发布时间 is null or (输入发布时间 is not null and D_FBSJ = to_date(输入发布时间,'yyyy-mm-dd'))
)where 输入新闻内容 is null or (输入新闻内容 is not null and V_XWNR like '%'||输入新闻内容||'%');

-- 输出总页页数
select ceil(输出总行行数/输入每页行数) into 输出总页页数 from dual;
exception when no_data_found then
null;
end;
-- 计算 输入当前页码 要显示的数据总行数
if 输入当前页码 is not null then
-- xia一页
if 输入是否下页 = 1 then
-- 计算 获取数据的当前页
v_cPage := (输入当前页码 + 1);
-- 最后一页
if v_cPage > 输出总页页数 then
v_cPage := 输出总页页数;
end if;
end if;
-- shang一页
if 输入是否下页 = 0 then
-- 计算 获取数据的当前页
v_cPage := (输入当前页码 - 1);
-- 最前一页
if v_cPage = 0 then
v_cPage := 1;
end if;
end if;
-- 要显示的数据总行数
v_cPageCount := v_cPage * 输入每页行数;
end if;
end if;
-- 执行查询 获取 要显示的数据
begin
open return_cursor for
select nts.* from(
select nt.* from (
select rownum 序号,n.* from(
select * from(
select * from(
select
I_ID 新闻编号,
V_XWZT 新闻主题,
V_XWNR 新闻内容,
D_FBSJ 发布时间,
D_YXSJ 有效时间,
V_FBBM 发布部门
from xtnews
where 1=1 and 输入新闻主题 is null or (输入新闻主题 is not null and V_XWZT like '%'||输入新闻主题||'%')
)where 输入新闻内容 is null or (输入新闻内容 is not null and 新闻内容 like '%'||输入新闻内容||'%')
)where 输入发布时间 is null or (输入发布时间 is not null and 发布时间 = to_date(输入发布时间,'yyyy-mm-dd'))
)n where 输入新闻编号 is null or (输入新闻编号 is not null and 新闻编号 = 输入新闻编号)
order by rownum
)nt where nt.序号 <= v_cPageCount order by 序号 desc
)nts where nts.序号 > (v_cPageCount-输入每页行数) order by 序号;
exception when no_data_found then
null;
end;

-- 输出最后计算的当前页码
if 输入新闻编号 is null and v_cPage is not null then
输出当前页码 := v_cPage;
end if;

END; </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • oracle查看执行最慢与查询次数最多的sql语句
  • Oracle之SQL语句性能优化(34条优化方法)
  • 查询Oracle中正在执行和执行过的SQL语句
  • Oracle中死事务的检查语句
  • Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解
  • oracle中得到一条SQL语句的执行时间的两种方式
  • oracle常用sql查询语句部分集合(图文)
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • Oracle中SQL语句连接字符串的符号使用介绍
  • Oracle 查看表空间的大小及使用情况sql语句

相关文章

  • 2017-05-11如何在Oracle中导入dmp文件
  • 2017-05-11rman备份脚本和rman增量备份脚本分享
  • 2017-05-11Oracle索引(B*tree与Bitmap)的学习总结
  • 2017-05-11oracle 下WITH CHECK OPTION用法
  • 2017-05-11Windows下编写批处理脚本来启动和重置Oracle数据库
  • 2017-05-11Oracle数据库的空间管理技巧
  • 2017-08-07java 备份(转存)数据库到云服务器或本地磁盘
  • 2017-05-11oracle中截断表的使用介绍
  • 2017-05-11Oracle数据库集复制方法浅议
  • 2017-05-11Oracle In和exists not in和not exists的比较分析

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Linux下的Oracle启动脚本及其开机自启动
    • PL/SQL实现Oracle数据库任务调度
    • Oracle数据库中表空间的基本管理操作小结
    • Oracle中的半联结和反联结详解
    • Oracle表的分类以及相关参数的详解
    • Oracle数学相关函数小结
    • Oracle数据库安全策略
    • VMware中linux环境下oracle安装图文教程(一)
    • ORACLE常见错误代码的分析与解决(二)
    • 实现oracle数据库字段自增长(两种方式)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有