您的位置:首页 > 数据库 > Oracle

orcale 存储过程分页时间戳

2014-04-01 10:43 253 查看
----------------------------------分页-----------------------------------------

CREATE OR REPLACE PROCEDURE PROC_PAGE(PINDEX   IN NUMBER, --分页索引

                                     PSQL     IN VARCHAR2, --SQL语句

                                     PSIZE    IN NUMBER, --页面大小

                                     PCOUNT   OUT NUMBER, --返回分页总数

                                     P_CURSOR OUT PK_TYPES.PK_CURSOR) IS

  v_sql   VARCHAR2(15000);

  v_count number;

  v_Plow  number;

  v_Phei  number;

  Psize1  number;

BEGIN

  v_sql := 'select count(*) from ( ' || Psql || ' )';

  execute immediate v_sql

    into v_count;

--若是输入的页面大小为0,则默认为10

  IF Psize = 0 THEN

    Psize1 := 10;

  ELSE

    Psize1 := Psize;

  END IF;

  Pcount := v_count;

  v_Phei := (Pindex - 1) * Psize1 + Psize1;

  v_Plow := v_Phei - Psize1 + 1;

  v_sql  := 'select *  from (select  t.*, rownum as rm from  (' || Psql ||

            ')    t   )  where rm between ' || v_Plow || ' and ' || v_Phei;

  OPEN P_CURSOR FOR v_sql;

END;
-----------------------------------------------转时间戳-------------------------

CREATE OR REPLACE FUNCTION UNIX_TO_ORACLE(in_number

    NUMBER) return date is

begin

  return(TO_DATE('19700101','yyyymmdd') + in_number/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24);

end unix_to_oracle;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle