• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle 分页 很棒的sql语句
    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;
    您可能感兴趣的文章:
    • oracle,mysql,SqlServer三种数据库的分页查询的实例
    • Oracle实现分页查询的SQL语法汇总
    • Oracle中使用Rownum分页详细例子
    • Oracle row_number() over()解析函数高效实现分页
    • 浅析Oracle和Mysql分页的区别
    • Oracle与Mysql主键、索引及分页的区别小结
    • Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
    • 分页技术原理与实现之Java+Oracle代码实现分页(二)
    • oracle分页存储过程 oracle存储过程实例
    • oracle实现一对多数据分页查询筛选示例代码
    上一篇:oracle dba 应该熟悉的命令
    下一篇:Oracle 存储过程总结(一、基本应用)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle 分页 很棒的sql语句 oracle,分页,很,棒,的,sql,