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;
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;
相关文章推荐
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- 数据库自动备份脚本
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累
- Oracle存储过程之数据库中获取数据实例
- Windows下ORACLE 10g完全卸载的方法分析
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ORACLE LATERAL-SQL-INJECTION 个人见解
- Oracle Connect to Idle Instance解决方法
- oracle sys_connect_by_path 函数 结果集连接
- Oracle捕获问题SQL解决CPU过渡消耗
- oracle dba 应该熟悉的命令
- Oracle11.2 命令行手工最简创建数据库的过程
- Oracle 数据库自动存储管理-安装配置