`
king520
  • 浏览: 176952 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
文章分类
社区版块
存档分类
最新评论

oracle存储过程之切割字符串(二)

 
阅读更多

调用及一个普通的查询过程

调用代码(一个function):

 --通过分割,把一个字符串的值获取到最后一个
  function getLastValueBySeperator(p_str       IN VARCHAR2,
                                   p_delimiter IN VARCHAR2) return varchar2 as
    Cursor c is
      select t.* from table(common_tool.fn_split(p_str, p_delimiter)) t;
    r         c%rowtype;
    resultVal varchar(100);
  begin
    open c;
    loop
      fetch c
        into r;
      exit when c%notfound;
      -- dbms_output.put_line(r.column_value);
      resultVal := r.column_value;
    end loop;
  
    return resultVal;
  end;
参考代码:

包头:

create or replace package WCITY2_STATISTIC is

  -- Author  : ADMINISTRATOR
  -- Created : 2012/10/24 9:48:34
  -- Purpose : 
  --定义一个游标类型
  type Ref_Cursor is ref cursor;

  --通过分割,把一个字符串的值获取到最后一个
  function getLastValueBySeperator(p_str       IN VARCHAR2,
                                   p_delimiter IN VARCHAR2) return varchar2;

  --page统计分析子系统调用该接口查看页面信息,
  --页面信息包括页面编码、页面名称、页面归属地等,
  --其中页面编码字段要求唯一且不能为空。
  procedure sp_pager_stats;

  --访问信息
  procedure sp_uservisit_stat(c_uservisit out Ref_Cursor);

  --下载信息
  procedure sp_download_stat(c_download out Ref_Cursor);

  --资源信息
  procedure sp_resource_stat(c_resource out Ref_Cursor);

  --查询订购信息
  procedure sp_order_stat(c_order out Ref_Cursor);

  --查询应用信息
  procedure sp_application_stat(c_application out Ref_Cursor);
  
  --查询:服务订阅信息
  procedure sp_bind_stat(c_bind out Ref_Cursor);
  
  --查询产品信息
  procedure sp_product_stat(c_product out Ref_Cursor);

end WCITY2_STATISTIC;
包体:
create or replace package body WCITY2_STATISTIC is

  --通过分割,把一个字符串的值获取到最后一个
  function getLastValueBySeperator(p_str       IN VARCHAR2,
                                   p_delimiter IN VARCHAR2) return varchar2 as
    Cursor c is
      select t.* from table(common_tool.fn_split(p_str, p_delimiter)) t;
    r         c%rowtype;
    resultVal varchar(100);
  begin
    open c;
    loop
      fetch c
        into r;
      exit when c%notfound;
      -- dbms_output.put_line(r.column_value);
      resultVal := r.column_value;
    end loop;
  
    return resultVal;
  end;

  --页面信息
  procedure sp_pager_stats is
  begin
    -- cur_page as select * from OMS_WIRELESS. TEMPLATE_FILE_WORKING;
    null;
  end sp_pager_stats;

  --访问信息
  procedure sp_uservisit_stat(c_uservisit out Ref_Cursor) as
    --定义游标
    /*
    cursor c_uservisit is 
    select t.city,t.username,t.username as telphone,'' as ip 
    from INTERFACE_WIRELESS.USER_LOGIN_LOG t ;*/
  begin
    open c_uservisit For
      select t.city, t.username, t.username as telphone, '' as ip
        from INTERFACE_WIRELESS.USER_LOGIN_LOG t;
  end;

  --下载信息
  procedure sp_download_stat(c_download out Ref_Cursor) as
  begin
    open c_download for
      select *
        from interface_wireless.log_statistics t
       where t.uri like '%download%';
  end;

  --资源信息
  procedure sp_resource_stat(c_resource out Ref_Cursor) as
  
    --v_resource  oms_wireless.resource_info%rowtype;
    v_id   oms_wireless.resource_info.id%type;
    v_type oms_wireless.resource_info.name%type;
    v_name oms_wireless.resource_info.name%type;
  begin
  
    open c_resource for
      select t.id as id,
             getLastValueBySeperator(t.name, '.') as type,
             t.name
        from oms_wireless.resource_info t;
    /*
    while (c_resource%found) loop
      fetch c_resource
        into v_id, v_type, v_name;
      v_type := 'test';
      dbms_output.put_line('aa:' + v_type);
    end loop;*/
  end;

  --查询订购信息
  procedure sp_order_stat(c_order out Ref_Cursor) as
  begin
    open c_order for
      select pd.order_id, pd.pay_account, pd.pay_account
        from interface_wireless.pay_record pd;
  end;

  --查询应用信息
  procedure sp_application_stat(c_application out Ref_Cursor) as
  begin
    open c_application for
      select t.id, t.app_id as app_type, t.app_name
        from interface_wireless.app_action_relation t;
  end;

  --查询:服务订阅信息
  procedure sp_bind_stat(c_bind out Ref_Cursor) as
  begin
    open c_bind for
      select aar.app_name, aar.app_id, aar.app_name, aar.plat_form
        from interface_wireless.menu_info menu
        left join interface_wireless.app_action_relation aar
        on menu.app_id = aar.app_id;
  end;
  
  --产品信息
  procedure sp_product_stat(c_product out Ref_Cursor) as
    begin
      null;
      end;
end WCITY2_STATISTIC;



分享到:
评论

相关推荐

    在存储过程中执行字符串中存有的sql语句

    oracle在存储过程中执行字符串中存有的sql语句

    oracle存储过程实现字符串截取

    例如:字段为1,2,3,4,5 截取之后为 1 2 3 4 5

    ORACLE 存储过程返回结果集,拼接为字符串输出为clob

    大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...

    oracle按特定字符截取字符串

    oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果

    oracle遍历数据库查找字符串

    本文将深入探讨如何使用Oracle遍历数据库查找字符串,以及一个简化此过程的工具。 标题"Oracle遍历数据库查找字符串"暗示了一个实用的解决方案,它允许用户快速搜索Oracle数据库中的特定文本字符串,无需手动编写...

    Oracle拆分字符串,字符串分割的函数

    在Oracle数据库中,处理字符串是常见的操作之一,尤其是在数据分析或数据清洗的过程中。有时我们需要将一个长字符串分割成多个部分,以便进行进一步的操作。Oracle提供了一些内置的函数来帮助我们完成这个任务。本篇...

    如何用oracle 截取两个相同字符串之间的字符

    在实际工作中经常遇到截取两个相同字符串之间的字符的oracle问题,以下是相关语句

    oracle中操作字符串

    ### Oracle中操作字符串 在Oracle数据库中,对字符串进行处理是一项常见的需求,特别是在处理带有特定分隔符(如逗号`,`、冒号`:`等)的字符串时。本文将详细介绍如何利用Oracle内置函数来实现从含有逗号和冒号的...

    Oracle连接字符串

    Oracle 连接字符串是指连接 Oracle 数据库的字符串书写方法,本文总结了多种连接 Oracle 数据库的字符串书写方法。 一、标准连接字符串 标准连接字符串是最基本的连接字符串格式,用于连接 Oracle 数据库。例如,...

    Oracle_Sql_中常用字符串处理函数

    Oracle Sql 中常用字符串处理函数 Oracle Sql 中提供了多种字符串处理函数,用于对字符串进行各种操作,如大小写转换、截取、连接、查找、替换等。下面是 Oracle Sql 中常用的字符串处理函数: 1. 大小写转换函数 ...

    oracle通过sql实现字符串转数字oracle函数

    在Oracle数据库中,将字符串转换为数字是一项常见的操作,特别是在处理包含数字的字符串列时,可能需要进行数值计算或按照数值大小进行排序。本篇文章将深入探讨如何在SQL查询中利用Oracle提供的函数来实现这一目标...

    oracle 如何判断一个字符串能否转换为数字?

    ### Oracle 判断字符串是否能转换为数字的方法 在Oracle数据库中,我们经常需要处理各种数据类型之间的转换。尤其是在处理字符型数据时,有时我们需要判断一个字符串是否能够被成功地转换成数字类型。与SQL Server...

    C#连接Oracle数据库字符串

    C#连接Oracle数据库字符串 C#连接Oracle数据库字符串

    Oracle通过正则表达式分割字符串 REGEXP_SUBSTR的代码详解

    string :需要进行正则处理的字符串 pattern :进行匹配的正则表达式 position :起始位置,从第几个字符开始正则表达式匹配(默认为1) occurrence :标识第几个匹配组,默认为1 modifier :模式(‘i’不区分大...

    Oracle查找字符串中某字符出现的次数

    select f_find('Ap@2233ll@@l@@','@') from dual 返回结果为5,代表‘@’在该字符串中出现5次。 同理 select f_find('Ap@223SWEQQQ3ll@@l@@','Q') from dual---返回3,代表Q在字符串中出现了3次, select f_find('我...

    oracle字符串替换

    ### Oracle字符串替换:使用REGEXP_REPLACE函数 在Oracle数据库中,对字符串进行处理是一项非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用`REGEXP_REPLACE`函数来实现字符串替换功能...

    oracle数据库截取字符串

    Oracle数据库截取字符串 Oracle数据库提供了多种截取字符串的方法,本文将介绍 substr 和 instr 两个常用函数,以及 case when then else end 语句的使用。 一、substr 函数 substr 函数用于截取字符串的一部分...

    oracle-字符串去重函数

    传入一个字符串和该字符串的分割字符,返回去重后的字符串,可以直接在plsql中运行,简单的函数运用,能处理oracle中。资源仅供参考

    Oracle接收长度大于4000的字符串

    Oracle存储过程读取Blob数据 为了读取并处理存储过程中的Blob数据,可以使用以下步骤: ##### 2.1 定义变量 在存储过程中定义必要的变量,如用于读取Blob数据的变量以及用于记录Blob长度的变量。 ```sql ...

    oracle多行转为字符串总结

    介绍了将多行转为字符串的三种方案,并比较了三种方案的执行效率. 1.sys_connect_by_path + start with ... connect by ... prior + 分析函数 2.自定义Function/SP 3.使用 Oracle 10g 内置函数 wmsys.wm_concat

Global site tag (gtag.js) - Google Analytics