oracle 储存过程
2015-08-11 15:12
633 查看
create or replace procedure ZDS_GET_SHARELINKBYPAGE(PHONENUM VARCHAR2,
USERID VARCHAR2,
PAGE NUMBER,
PAGESIZE NUMBER,
REF_CURSOR OUT SYS_REFCURSOR) is
/* 过程、函数简要描述信息
**********************************************************
* 存储过程名 : 根据手机号码或用户ID获得分享链接--分页
* 建立日期 :
* 作者 :
* 模块 : 自电商
* 输出参数 :REF_CURSOR
* 备注 :
*------------------------------------------------------------
* 修改历史
* 序号 日期 修改execute immediate人 修改原因
* 1
************************************************************ */
V_PHONENUM VARCHAR2(16) := PHONENUM; ----手机号码
V_USERID VARCHAR2(80) := USERID;--用户ID
V_PAGE NUMBER := PAGE; --页码
V_PAGESIZE NUMBER := PAGESIZE; --每页行数
V_START NUMBER;
V_END NUMBER;
V_SQL VARCHAR2(1000);
begin
V_START := (V_PAGE - 1) * V_PAGESIZE + 1;
V_END := V_PAGE * V_PAGESIZE;
if (V_PHONENUM is not null and V_USERID is not null) then
V_SQL := 'SELECT B.* FROM (SELECT ROWNUM AS XH, A.* FROM (SELECT * FROM ZDS_SHARE_LINK WHERE USERID = ''' ||
V_USERID || ''' and PHONENUM
= ''' || V_PHONENUM || ''') A) B WHERE B.XH <= ' || V_END ||
' AND B.XH >= ' || V_START || '';
elsif V_PHONENUM is null then
V_SQL := 'SELECT B.* FROM (SELECT ROWNUM AS XH, A.* FROM (SELECT * FROM ZDS_SHARE_LINK WHERE USERID = ''' ||
V_USERID || ''') A) B WHERE B.XH <= ' || V_END ||
' AND B.XH >= ' || V_START || '';
elsif V_USERID is null then
V_SQL := 'SELECT B.* FROM (SELECT ROWNUM AS XH, A.* FROM (SELECT * FROM ZDS_SHARE_LINK WHERE PHONENUM
= ''' || V_PHONENUM ||
''') A) B WHERE B.XH <= ' || V_END || ' AND B.XH >= ' ||
V_START || '';
end if;
--dbms_output.put_line(V_SQL);
OPEN REF_CURSOR FOR V_SQL;
end ZDS_GET_SHARELINKBYPAGE;
根据 USERID 和 PHONENUM 进行分页查询 ,二者不可同时为空的查询。
USERID VARCHAR2,
PAGE NUMBER,
PAGESIZE NUMBER,
REF_CURSOR OUT SYS_REFCURSOR) is
/* 过程、函数简要描述信息
**********************************************************
* 存储过程名 : 根据手机号码或用户ID获得分享链接--分页
* 建立日期 :
* 作者 :
* 模块 : 自电商
* 输出参数 :REF_CURSOR
* 备注 :
*------------------------------------------------------------
* 修改历史
* 序号 日期 修改execute immediate人 修改原因
* 1
************************************************************ */
V_PHONENUM VARCHAR2(16) := PHONENUM; ----手机号码
V_USERID VARCHAR2(80) := USERID;--用户ID
V_PAGE NUMBER := PAGE; --页码
V_PAGESIZE NUMBER := PAGESIZE; --每页行数
V_START NUMBER;
V_END NUMBER;
V_SQL VARCHAR2(1000);
begin
V_START := (V_PAGE - 1) * V_PAGESIZE + 1;
V_END := V_PAGE * V_PAGESIZE;
if (V_PHONENUM is not null and V_USERID is not null) then
V_SQL := 'SELECT B.* FROM (SELECT ROWNUM AS XH, A.* FROM (SELECT * FROM ZDS_SHARE_LINK WHERE USERID = ''' ||
V_USERID || ''' and PHONENUM
= ''' || V_PHONENUM || ''') A) B WHERE B.XH <= ' || V_END ||
' AND B.XH >= ' || V_START || '';
elsif V_PHONENUM is null then
V_SQL := 'SELECT B.* FROM (SELECT ROWNUM AS XH, A.* FROM (SELECT * FROM ZDS_SHARE_LINK WHERE USERID = ''' ||
V_USERID || ''') A) B WHERE B.XH <= ' || V_END ||
' AND B.XH >= ' || V_START || '';
elsif V_USERID is null then
V_SQL := 'SELECT B.* FROM (SELECT ROWNUM AS XH, A.* FROM (SELECT * FROM ZDS_SHARE_LINK WHERE PHONENUM
= ''' || V_PHONENUM ||
''') A) B WHERE B.XH <= ' || V_END || ' AND B.XH >= ' ||
V_START || '';
end if;
--dbms_output.put_line(V_SQL);
OPEN REF_CURSOR FOR V_SQL;
end ZDS_GET_SHARELINKBYPAGE;
根据 USERID 和 PHONENUM 进行分页查询 ,二者不可同时为空的查询。
相关文章推荐
- oracle join on 连接
- ORACLE PARTITION
- ORACLE11G安装教程
- oracle 真正去重效率语句
- oracle range分区表已经有了MAXVALUE 分区,如何添加分区?要不能删除MAXVALUE分区里的数据,不影响在线应用。
- ORACLE最大连接数问题
- oracle 存储过程 基础
- Oracle数据库优化
- Oracle 12C -- 在相同的列的集合上创建多个索引
- Oracle11g修改默认用户密码有效期时间
- 安装oracle
- Oracle 12C -- sequence的新特性
- Oracle110个常用函数
- Oracle临时表GLOBAL TEMPORARY TABLE
- 转:Oracle数据库的驱动包ojdbc*.jar之间的差别
- Oracle创建表空间、创建用户以及授权、查看权限
- Oracle外部表的管理和应用
- Oracle 12C -- 基于sequence的列的默认值
- oracle求每月第一天和最后一天
- oracle数据库问题集