调用及一个普通的查询过程
调用代码(一个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;
分享到:
相关推荐
oracle在存储过程中执行字符串中存有的sql语句
例如:字段为1,2,3,4,5 截取之后为 1 2 3 4 5
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果
Oracle拆分字符串,字符串分割的函数,将返回一个表格,如果有需要的可以下载去看看。
在实际工作中经常遇到截取两个相同字符串之间的字符的oracle问题,以下是相关语句
string :需要进行正则处理的字符串 pattern :进行匹配的正则表达式 position :起始位置,从第几个字符开始正则表达式匹配(默认为1) occurrence :标识第几个匹配组,默认为1 modifier :模式(‘i’不区分大...
oracle中操作字符串(带有,的字符串,从中取出“:”前面或后面的值)
oracle通过sql实现字符串转数字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字符串函数ORACLE字符串函数
C#连接Oracle数据库字符串 C#连接Oracle数据库字符串
自己工作时写的oracle搜索数据库,查找想要找的字符串.配置简单,省去单独写sql的时间.运行需要jre运行环境.
传入一个字符串和该字符串的分割字符,返回去重后的字符串,可以直接在plsql中运行,简单的函数运用,能处理oracle中。资源仅供参考
这里利用了函数 regexp_substr和connect by 及oracle的正则相关函数实现oracle分割字符串方法
Oracle_Sql_中常用字符串处理函数
* 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序
介绍了将多行转为字符串的三种方案,并比较了三种方案的执行效率. 1.sys_connect_by_path + start with ... connect by ... prior + 分析函数 2.自定义Function/SP 3.使用 Oracle 10g 内置函数 wmsys.wm_concat
Oracle 分割字符串 返回多行数据
oracle存储过程中入参是逗号分隔,并且参数要使用在in过滤语句中查询数据。处理的方法与实现