1. 创建Type
create or replace type type_ac_varchar2 as table of varchar2(60);
2. 创建Function
create or replace Function fnc_str_split(in_string In varchar2, in_delimiter In varchar2)
Return type_ac_varchar2
Pipelined Is
v_length Number :=length(in_string);
v_start Number := 1;
v_index Number;
Begin
while(v_start <= v_length) Loop
v_index:=instr(in_string,in_delimiter,v_start);
If v_index=0 Then
Pipe Row(substr(in_string,v_start));
v_start := v_length+1;
Else
Pipe Row(substr(in_string,v_start,v_index-v_start));
v_start :=v_index +1;
End if;
End Loop;
return;
End fnc_str_split;
3. 使用
如SQL语句:select * from Table(fnc_str_split('1,2,3,4,5,6,7',',')) where column_value in (1,2);
在应用中,如果设置了命名参数,需要设置参数为in(....)这样的范围,当参数在数据库中的类型为number类型时,会产生SQL错误Invalid Number。此时可以用Table函数构建临时表解决该问题。
分享到:
相关推荐
postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数,postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数
oracle表的构建
Oracle常用的和表(Table)相关的命令
Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。
表函数可接受查询语句或游标作为输入参数,并... FROM TABLE (myfunction (CURSOR (SELECT * FROM mytab))); 2. 利用两个实体化视图(或表)作为样板数据 CREATE MATERIALIZED VIEW sum_sales_country_mv BUILD IMME
本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...
oracle 管道函数 动态游标,自定义类型,转table
本文档详细介绍了如何在Oracle数据库中实现像C#等其它编程语言中Split函数来拆分字符的功能。例子简单易懂,并附有详细的实现过程。
下面是Oracle支持的字符函数和它们的Microsoft SQL Server等价函数。
oracle split函数,内有两种实现方式,可直接返回多行记录如: 传入参数: SELECT * FROM TABLE(mm_split('中国,be,c,de',',')); 返回四条记录: 中国 be c de
oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...
Oracle日期函数用于对Oracle数据库中的日期及时间进行处理,下面就为您详细介绍Oracle日期函数的用法,希望对您能有所启迪。 (1)SYSDATE和TRUNC 两个Oracle日期函数取Oracle服务器系统的日期和截掉小数部分的功能...
Oracle日期函数大礼包初学者必学的知识。时间为null的用法 select id, active_date from table1 UNION select 1, TO_DATE(null) from dual;
ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,...
通过实例介绍了 cast(multiset() as) 的使用方法,以处理嵌套表的操作
oracle管道函数是一类特殊的函数,oracle管道函数返回值类型必须为集合 如果需要在客户端实时的输出函数执行过程中的一些信息,在oracle9i以后可以使用管道函数(pipeline function)。 关键字PIPELINED表明这是一个...
oracle数据库中XML字段的操作,--通过查询节点id返回以父节点为根节点的整棵节点树 SELECT extract(value(t),'/chapter').getstringval() ChapterName FROM t_content_metadata,TABLE( xmlsequence ( extract(XML_...
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。 代码如下:CREATE TABLE salaryByMonth( employeeNo varchar2(20)...
Oracle的分析函数功能非常强大,工作这些年来经常用到。这次将平时经常使用到的分析函数整理出来,以备日后查看。 我们拿案例来学习,这样理解起来更容易一些。 1、建表 create table earnings -- 打工赚钱表 ( ...