`

游标定义,多行,一行

 
阅读更多
create or replace procedure SP_CIF_Smary_CustInfo(
  o_Cur   out Types.CursorType,
  o_ret out integer,
  o_msg out varchar2,
  i_user in integer,
  i_ip in varchar2,
  i_CustNo in varchar2--客户号
) is
/*
**功能说明:客户基本信息

**创建日期:2015-04-09
************************************************************************
**修改记录
************************************************************************
**修改者       版本号     修改日期     说明
             1.0       2015-04-09   创建
*/

begin
  o_ret := -99;
  o_msg := '未知错误';

  open o_Cur for
  select FCustNo as 客户号,
         FName   as 客户姓名,
         case Fsex when 1 then '男' when 2 then '女' else '未说明性别' end||','||(select fn_PUB_CalAge(substr(to_char(a.fbirthday,'yyyymmdd'),0,4),FCertType,FCertNo) from dual) as "性别/年龄",
         --(select fn_PUB_CalAge(substr(to_char(a.fbirthday,'yyyymmdd'),0,4),FCertType,FCertNo) from dual) as 年龄,
         (select b.fname from pub_employee b where b.id = a.FManager) as 客户经理,
       1 as 理财顾问,
         FMobile as 服务手机,
       1 as 服务EMAIL,
         1 as 最近联系时间,
       1 as 所属群,
       1 as 客户特征
   from Cif_Persinfo a where FCustNo = i_CustNo;

  o_ret := 1;
  o_msg := '';

exception
  when others then
       o_ret := -99;
       o_msg := case when o_msg is null then '未知错误' else '在['||o_msg||']处发生异常' end;

end SP_CIF_Smary_CustInfo;


结果

  <C0>1</C0>
  <客户号>101332602197504126498</客户号>
  <客户姓名>郭华鸥</客户姓名>
  <性别_年龄>男,41</性别_年龄>
  <客户经理>马志清</客户经理>
  <理财顾问>1</理财顾问>
  <服务手机>13186976222</服务手机>
  <服务EMAIL>1</服务EMAIL>
  <最近联系时间>1</最近联系时间>
  <所属群>1</所属群>
  <客户特征>1</客户特征>



create or replace procedure SP_CIF_Smary_Business(
  o_Cur   out Types.CursorType,
  o_ret out integer,
  o_msg out varchar2,
  i_user in integer,
  i_ip in varchar2,
  i_CustNo in varchar2--客户号
) is
/*
**功能说明:业务开通情况
**创建人:
**创建日期:2015-04-10
************************************************************************
**修改记录
************************************************************************
**修改者       版本号     修改日期     说明
           1.0       2015-04-10   创建
*/

begin
  o_ret := -99;
  o_msg := '未知错误';

  open o_Cur for
  select
     '网上银行' as 业务,
     b.khsj as 开通日期,
   (select name from lborganization c where c.orgcode = b.khwdjgh) as 办理机构,
   case when C3002 = 1 then '已开通' else '未开通' end as 状态
  from dcuser.dc_customerdatah a
  left join dcuser.PB_CSTINF_PRO b on a.fcustomer = b.zjlx||b.zjhm
  where a.fcustomer = i_CustNo and a.fdate = (select max(fdate) from dcuser.dc_customerdatah)
  union all
  select
     '手机银行' as 业务,
     substr(b.khsj,0,8) as 开通日期,
   (select name from lborganization c where c.orgcode = b.khwd) as 办理机构,
   case when C3003 = 1 then '已开通' else '未开通' end as 状态
  from dcuser.dc_customerdatah a
  left join (select c.khsj,c.khwd,d.zjlx,d.zjhm from dcuser.PB_CSTINF_PRO d left join dcuser.MB_PB_CSTINF_PRO c on c.dzyxkhnm=d.wykhnm) b
  on a.fcustomer = b.zjlx||b.zjhm
  where a.fcustomer = i_CustNo and a.fdate = (select max(fdate) from dcuser.dc_customerdatah)
  union all
    select
     '借记卡' as 业务,
     to_char(b.kkrq,'yyyymmdd') as 开通日期,
   (select name from lborganization c where c.orgcode = b.sljgh) as 办理机构,
   case when C3007 = 1 then '已开通' else '未开通' end as 状态
  from dcuser.dc_customerdatah a
  left join dcuser.BWFMDCIM b  on a.fcustomer=b.khh
  where a.fcustomer = i_CustNo and a.fdate = (select max(fdate) from dcuser.dc_customerdatah);

  o_ret := 1;
  o_msg := '';

exception
  when others then
       o_ret := -99;
       o_msg := case when o_msg is null then '未知错误' else '在['||o_msg||']处发生异常' end;

end SP_CIF_Smary_Business;





1 网上银行 未开通
2 手机银行 未开通
3 借记卡 已开通


方法定义

create or replace function fn_PUB_CalAge
(
    i_BirthDate varchar2, --出生年份
    i_CertType  int := null, --证件类型
    i_CertNo    varchar2 := null --证件号码
) return int as
    /*
    **功能说明:获取年龄
    **创建人:
    **创建日期:2014-06-24
    **************************************************************************
    **修改记录
    **************************************************************************
    **修改者     版本号    修改日期     说明
    **张华斌              2014-06-24   创建
    */
    v_Age       int;
    v_BirthDate varchar2(4);
begin
    if(i_CertType = '101') then
    if(length(i_CertNo) = 15) then
    v_BirthDate := '19' || substr(i_CertNo, 7, 2);
        elsif(length(i_CertNo) = 18) then
            v_BirthDate := substr(i_CertNo, 7, 4);
        end if;
    else
        v_BirthDate := i_BirthDate;
    end if;
if(v_BirthDate is not null) then
        v_Age := to_char(sysdate, 'yyyy') - v_BirthDate + 1;
    end if;
return v_Age;
end;
分享到:
评论

相关推荐

    mysql游标的原理与用法实例分析

    另外,使用游标也可以轻易的取出在检索出来的行中前进或后退一行或多行的结果。 游标可以遍历返回的多行结果。 补充: Mysql中游标只适用于存储过程以及函数。 创建游标: 语法: 1.定义游标:declare 游标名...

    精通SQL 结构化查询语言详解

    1.3.1 第一代数据库  1.3.2 第二代数据库  1.3.3 新一代数据库技术的研究和发展  1.4 关系数据库  1.4.1 关系模型  1.4.2 Codd十二法则  1.4.3 范式  1.5 SQL语言基础  1.5.1 SQL的历史  1.5.2 ...

    PL/SQL Developer8.04官网程序_keygen_汉化

     游标的定义为:用游标来指代一个DML SQL操作返回的结果集。即当一个对数据库的查询操作返回一组结果集时,用游标来标注这组结果集,以后通过对游标的操作来获取结果集中的数据信息。这里特别提出游标的概念,是...

    PLSQLDeveloper下载

     游标的定义为:用游标来指代一个DML SQL操作返回的结果集。即当一个对数据库的查询操作返回一组结果集时,用游标来标注这组结果集,以后通过对游标的操作来获取结果集中的数据信息。这里特别提出游标的概念,是...

    oracle数据库经典题目

    13. 用_____语句修改表的一行或多行数据。( A ) A.Update B.set C.Select D.Where 14. 使用什么命令可以清除表中所有的内容? ( D ) A.INSERT B.UPDATE C. DELETE D.TRUNCATE 15.关于模式的描述下列哪一项不...

    Oracle 10g 开发与管理

    3.另一种隐式游标 64 (二)显示游标 64 1.声明 64 2.打开和关闭 65 3.检索数据 65 (三)游标For循环 65 (四)游标变量 (动态游标) 66 1.定义 66 2.声明游标变量 66 3.打开游标变量 66 (五) 使用游标更新数据库 66 ...

    精通SQL--结构化查询语言详解

    1.3.1 第一代数据库 7 1.3.2 第二代数据库 7 1.3.3 新一代数据库技术的研究和发展 7 1.4 关系数据库 8 1.4.1 关系模型 8 1.4.2 codd十二法则 9 1.4.3 范式 10 1.5 sql语言基础 11 1.5.1 sql的历史 11 1.5.2...

    Oraclet中的触发器

    行级(ROW)触发器:是指当某触发事件发生时,对受到该操作影响的每一行数据,触发器都单独执行一次。 创建触发器 创建触发器的一般语法是: CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER | INSTEAD ...

    精通sql结构化查询语句

    以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...

    PLSQL基础word

    一行中可以有多条SQL语句,他们之间以分号分隔。每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。注释由--标示。  PL/SQL块的命名和匿名  PL/SQL程序块可以是一个命名的程序块也可以是一个匿名程序块。匿名...

    mysql数据库的基本操作语法

    自动:当表上定义主键约束、唯一、外键约束时,该表会被系统自动添加上索引。 手动:手动在相关表或列上增加索引,提高查询速度。 删除索引方式: 自动:当表对象被删除时,该表上的索引自动被删除 手动:手动删除...

    Python Cookbook

    1.14 改变多行文本字符串的缩进 29 1.15 扩展和压缩制表符 31 1.16 替换字符串中的子串 33 1.17 替换字符串中的子串-Python 2.4 34 1.18 一次完成多个替换 36 1.19 检查字符串中的结束标记 39 1.20 使用...

    Python核心编程第二版(ok)

     9.2.2 通用换行符支持(UNS)   9.3 文件内建方法   9.3.1 输入   9.3.2 输出   9.3.3 文件内移动   9.3.4 文件迭代   9.3.5 其他   9.3.6 文件方法杂项   9.4 文件内建属性   9.5 ...

    Python核心编程第二版

     9.2.2 通用换行符支持(UNS)   9.3 文件内建方法   9.3.1 输入   9.3.2 输出   9.3.3 文件内移动   9.3.4 文件迭代   9.3.5 其他   9.3.6 文件方法杂项   9.4 文件内建属性   9.5 ...

    WEB设计大全

    颜色、图像及背景 &lt;br&gt;11.1 颜色基础 &lt;br&gt;11.2 Web上的颜色 &lt;br&gt;11.2.1 比特深度 &lt;br&gt;11.2.2 在Web上定义颜色 &lt;br&gt;11.2.3 浏览器安全颜色 &lt;br&gt;11.2.4 混合色 &lt;br&gt;11.2.5 HTML和颜色 ...

    WEB设计大全(part2)

    颜色、图像及背景 &lt;br&gt;11.1 颜色基础 &lt;br&gt;11.2 Web上的颜色 &lt;br&gt;11.2.1 比特深度 &lt;br&gt;11.2.2 在Web上定义颜色 &lt;br&gt;11.2.3 浏览器安全颜色 &lt;br&gt;11.2.4 混合色 &lt;br&gt;11.2.5 HTML和颜色 ...

Global site tag (gtag.js) - Google Analytics