prompt
prompt Creating procedure P_BSS_QUERYACCOUNT
prompt =====================================
prompt
CREATE OR REPLACE PROCEDURE P_BSS_QUERYACCOUNT
/*
Description : 查询用户基本的订购信息
Author : 刘宏宗 57983
Date : 2007-06-14
Version : VMS V2.0D500
Caller : com.huawei.umcp.bss.dao.AccountInfoDAO.query()
Callee :
Comments : 相关表: T_BSS_ACCOUNTINFO
History :
1. Date : 2007-06-14
Author : 刘宏宗 57983
Modification : 创建
2. ......
*/
(
i_UserNo VARCHAR2, -- 用户号码
i_SubboxNo VARCHAR2,--用户的子邮箱号码
i_StartTime DATE, -- 开始时间
i_EndTime DATE, -- 结束时间
i_AreaCode VARCHAR2, -- 区号
i_StartNum NUMBER, -- 起始记录数
i_EndNum NUMBER, -- 结束记录数
i_QueryType NUMBER, -- 查询类型 1查总数 2查内容 3按号码查询
o_AccountInfoRef OUT SYS_REFCURSOR, -- 用户返回游标
o_Count OUT NUMBER, -- 总记录数(最大返回10000,10001表示超过10000条数据)
o_Ret OUT NUMBER -- 返回值
) AS
v_StartTime DATE;
v_EndTime DATE;
BEGIN
o_Ret := 1;
o_Count := 0;
IF i_StartTime IS NULL THEN
v_StartTime := TO_DATE('1970', 'YYYY');
ELSE
v_StartTime := i_StartTime;
END IF;
IF i_EndTime IS NULL THEN
v_EndTime := TO_DATE('2050', 'YYYY');
ELSE
v_EndTime := i_EndTime;
END IF;
IF i_QueryType = 1 THEN
-- 判断用户号码是否为空
IF i_UserNo IS NULL THEN
SELECT COUNT(1)
INTO o_Count
FROM T_BSS_ACCOUNTINFO t
WHERE ROWNUM < 10001
AND OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime;
ELSE
IF I_AREACODE IS NULL THEN
SELECT COUNT(1)
INTO o_Count
FROM T_BSS_ACCOUNTINFO t
WHERE ROWNUM < 10001
AND OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime
AND PARTCOL_USERNO = SUBSTR(i_UserNo, -3, 2);
ELSE
SELECT COUNT(1)
INTO o_Count
FROM T_BSS_ACCOUNTINFO t
WHERE ROWNUM < 10001
AND AREA_CODE = NVL(i_AreaCode, AREA_CODE)
AND OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime
AND PARTCOL_USERNO = SUBSTR(i_UserNo, -3, 2);
END IF;
END IF;
OPEN o_AccountInfoRef FOR
SELECT NULL FROM dual WHERE 1 = 0;
o_Ret := 0;
RETURN;
END IF;
IF i_QueryType = 3 THEN
OPEN o_AccountInfoRef FOR
SELECT USER_NO,
LEVEL_ID,
STATUS,
OPEN_TIME,
AREA_CODE,
PARTCOL_USERNO,
ADDITIONAL_INFO_1,
ADDITIONAL_INFO_2,
ADDITIONAL_INFO_3,
ATTRIBUTVE_POINT,
DATASITE_CODE,
FILESITE_CODE,
FEE_TYPE,
COUNTRY_CODE,
SUBBOX_NO
FROM T_BSS_ACCOUNTINFO
WHERE USER_NO = I_USERNO
AND ((I_AREACODE IS NULL) or(AREA_CODE = I_AREACODE ))
AND OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime
AND PARTCOL_USERNO = substr(i_UserNo, -3, 2);
SELECT COUNT(1)
INTO o_Count
FROM T_BSS_ACCOUNTINFO t
WHERE USER_NO = i_UserNo
AND ((I_AREACODE IS NULL) or(AREA_CODE = I_AREACODE ))
AND OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime
AND PARTCOL_USERNO = substr(i_UserNo, -3, 2);
o_Ret := 0;
RETURN;
END IF;
-- 判断用户号码是否为空
/*IF i_UserNo IS NULL THEN
-- 不附带条件查询所有订购信息
OPEN o_AccountInfoRef FOR
SELECT USER_NO,
LEVEL_ID,
STATUS,
OPEN_TIME,
AREA_CODE,
PARTCOL_USERNO,
ADDITIONAL_INFO_1,
ADDITIONAL_INFO_2,
ADDITIONAL_INFO_3,
ATTRIBUTVE_POINT,
DATASITE_CODE,
FEE_TYPE
FROM (SELECT USER_NO,
LEVEL_ID,
STATUS,
OPEN_TIME,
AREA_CODE,
PARTCOL_USERNO,
ADDITIONAL_INFO_1,
ADDITIONAL_INFO_2,
ADDITIONAL_INFO_3,
ATTRIBUTVE_POINT,
DATASITE_CODE,
FEE_TYPE,
ROWNUM ROWNO
FROM T_BSS_ACCOUNTINFO
WHERE OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime) a
WHERE a.ROWNO >= nvl(i_StartNum, 0)
AND a.ROWNO <= nvl(i_EndNum, 15);
-- 查询数据库中符合条件的用户数量
SELECT COUNT(1)
INTO o_Count
FROM T_BSS_ACCOUNTINFO t
WHERE ROWNUM < 10001
AND OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime;
ELSE*/
-- 附带UserNo条件查询相应订购信息
OPEN o_AccountInfoRef FOR
SELECT USER_NO,
LEVEL_ID,
STATUS,
OPEN_TIME,
AREA_CODE,
PARTCOL_USERNO,
ADDITIONAL_INFO_1,
ADDITIONAL_INFO_2,
ADDITIONAL_INFO_3,
ATTRIBUTVE_POINT,
DATASITE_CODE,
FILESITE_CODE,
FEE_TYPE,
COUNTRY_CODE
FROM T_BSS_ACCOUNTINFO
WHERE USER_NO = I_USERNO
AND ((i_SubboxNo IS NULL AND SUBBOX_NO IS NULL) or (SUBBOX_NO = i_SubboxNo))
AND ((I_AREACODE IS NULL) or(AREA_CODE = I_AREACODE ))
AND OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime
AND PARTCOL_USERNO = substr(i_UserNo, -3, 2);
SELECT COUNT(1)
INTO o_Count
FROM T_BSS_ACCOUNTINFO t
WHERE USER_NO = i_UserNo
AND ((i_SubboxNo IS NULL AND SUBBOX_NO IS NULL) or (SUBBOX_NO = i_SubboxNo))
AND ((I_AREACODE IS NULL) or(AREA_CODE = I_AREACODE ))
AND ROWNUM < 10001
AND OPEN_TIME >= v_StartTime
AND OPEN_TIME <= v_EndTime
AND PARTCOL_USERNO = substr(i_UserNo, -3, 2);
/*END IF;*/
o_Ret := 0;
RETURN;
EXCEPTION
WHEN OTHERS THEN
o_Ret := 1;
IF o_AccountInfoRef%ISOPEN THEN
CLOSE o_AccountInfoRef;
END IF;
OPEN o_AccountInfoRef FOR
SELECT NULL FROM dual WHERE 1 = 0;
P_COMM_ADDEXCEPTION('P_BSS_QUERYACCOUNT', SQLERRM, SQLCODE, 'i_UserNo=' || i_UserNo);
END P_BSS_QUERYACCOUNT;
/
分享到:
相关推荐
描述这是一个简单的项目,它演示了如何为特定存储过程配置 Spring bean 并参与 Apache Camel 路由。设置和安装设置环境和运行此演示的步骤: 查找可用的 Oracle 数据库环境,或安装 Oracle XE 11g。 转至下载它及其...
Delphi 隐藏桌面图标 并显示图标,运行这个小程序后,单击窗口上的对应按钮,即可演示对应的功能,其实实现这个功能挺简单的,可以使用Delphi中内置的函数功能来实现,比如: procedure TForm1.Button1Click...
过滤字符串,替换字符串,删除指定部位的字符串,具体到本例中,是删除字符串开头和结尾处的空格,本例子其实简单,使用内置的Trim函数即可实现,可当作是Delphi Trim函数的用法演示: procedure TForm1....
VC 演示在程序中删除已存在的存储过程,VC6存储过程相关操作实例,删除方法很简单,创建对象,如下代码示: UpdateData(true); BOOL result; ADOConn m_AdoConn; m_AdoConn.OnInitADOConn(); _bstr_t sql;...
Delphi 获取MonthCalendar中选择的日期,其实就是完成一个时间、日期的选择功能,年份、月份、日期、时间都可自定义调整并选择,这个简单的例子,可演示Delphi中MonthCalendar的用法,生成一个日期时间选择器功能。...
Delphi 文件拖放显示路径-支持打开多文件,是一种比较人性化的文件打开方式,拖动文件到Delphi窗口中,即可获取并显示文件路径,本源码还可获取拖放的文件个数,程序运行界面如演示截图所示。拖动文件放入本窗口中,...
提供了一个完整的示例代码,演示了如何在Sanic框架下实现一个简单的jsRpc服务端和客户端; 解释了如何处理jsRpc请求和响应,以及如何进行异常处理和错误处理; 提供了一些最佳实践和常见问题的解答。 通过学习这个...
-VC source-------------------------------------------- dswRename_src.zip a workspace can rename the procedure. Simplecomserver_src.zip demonstration of how to create a ...
VS2005 分页自定义控件,测试环境在:VS2005+SQL2005下通过 <br>演示说明:前台ASPX页(可以绑定的控件是:DataGrid,GridView,Repeater,DataList等等) 1:先注册一下控件,不要跟我说看不懂下面这句 <%@ Register ...
3.6 过程(Procedure) 3.7 数组(Array) 3.8 类(Class) 3.9 字符串(String) 3.10 输出(Output) 3.11 列表(List) 3.12 Tcl内置命令 第4章 NS2语法 4.1 一个简单的例子 4.2 基本语法 第二...
3.6 过程(Procedure) 3.7 数组(Array) 3.8 类(Class) 3.9 字符串(String) 3.10 输出(Output) 3.11 列表(List) 3.12 Tcl内置命令 第4章 NS2语法 4.1 一个简单的例子 4.2 基本语法 第二...
3.6 过程(Procedure) 3.7 数组(Array) 3.8 类(Class) 3.9 字符串(String) 3.10 输出(Output) 3.11 列表(List) 3.12 Tcl内置命令 第4章 NS2语法 4.1 一个简单的例子 4.2 基本语法 第二...
3.6 过程(Procedure) 3.7 数组(Array) 3.8 类(Class) 3.9 字符串(String) 3.10 输出(Output) 3.11 列表(List) 3.12 Tcl内置命令 第4章 NS2语法 4.1 一个简单的例子 4.2 基本语法 第二...
3.6 过程(Procedure) 3.7 数组(Array) 3.8 类(Class) 3.9 字符串(String) 3.10 输出(Output) 3.11 列表(List) 3.12 Tcl内置命令 第4章 NS2语法 4.1 一个简单的例子 4.2 基本语法 第二...
Application of enterprise product figure design based on Authorware <br>[摘 要] 本文结合一个实例,介绍了在基于Authorware的多媒体企业产品形象设计开发过程中对程序进行制作的原则和方法,并简单介绍...
这个笔记是学习oracle数据库过程中整理出来的,比较详细,适合于初学者。 │ oracle与tomcat端口冲突.txt │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt ... 演示代码.sql
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
3. scott用户:是个演示用户,是让你学习Oracle用的。 二、 常用命令 学习oracle,首先我们必须要掌握常用的基本命令,oracle中的命令比较多,常用的命令如下: 1. 登录命令(sqlplus) 说明:用于登录到oracle数据库 ...