`
hekui1016
  • 浏览: 50011 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle Table函数

 
阅读更多

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 函数, postgresql 兼容 oracle 函数

    oracle table

    oracle表的构建

    Oracle常用的和表(Table)相关的命令

    Oracle常用的和表(Table)相关的命令

    Oracle函数返回表

    Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。

    Oracle 中 table 函数的应用浅析

    表函数可接受查询语句或游标作为输入参数,并... FROM TABLE (myfunction (CURSOR (SELECT * FROM mytab))); 2. 利用两个实体化视图(或表)作为样板数据 CREATE MATERIALIZED VIEW sum_sales_country_mv BUILD IMME

    Oracle分组函数之ROLLUP的基本用法

    本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...

    oracle 管道函数+动态游标

    oracle 管道函数 动态游标,自定义类型,转table

    Oracle中实现Split函数功能

    本文档详细介绍了如何在Oracle数据库中实现像C#等其它编程语言中Split函数来拆分字符的功能。例子简单易懂,并附有详细的实现过程。

    ORACLE 系统函数大全SQLSERVER系统函数的异同

    下面是Oracle支持的字符函数和它们的Microsoft SQL Server等价函数。

    oracle split函数

    oracle split函数,内有两种实现方式,可直接返回多行记录如: 传入参数: SELECT * FROM TABLE(mm_split('中国,be,c,de',',')); 返回四条记录: 中国 be c de

    oracle字符串分割自定义函数

    oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...

    Oracle日期函数简介

    Oracle日期函数用于对Oracle数据库中的日期及时间进行处理,下面就为您详细介绍Oracle日期函数的用法,希望对您能有所启迪。 (1)SYSDATE和TRUNC 两个Oracle日期函数取Oracle服务器系统的日期和截掉小数部分的功能...

    Oracle日期函数大礼包

    Oracle日期函数大礼包初学者必学的知识。时间为null的用法  select id, active_date from table1  UNION  select 1, TO_DATE(null) from dual;

    oracle函数大全.doc

    ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL&gt; select ascii('A') A,ascii('a') a,...

    oracle cast (multiset()as )用法

    通过实例介绍了 cast(multiset() as) 的使用方法,以处理嵌套表的操作

    详解oracle管道函数的用法(一行拆为多行)

    oracle管道函数是一类特殊的函数,oracle管道函数返回值类型必须为集合 如果需要在客户端实时的输出函数执行过程中的一些信息,在oracle9i以后可以使用管道函数(pipeline function)。 关键字PIPELINED表明这是一个...

    oracle xml函数使用例子1

    oracle数据库中XML字段的操作,--通过查询节点id返回以父节点为根节点的整棵节点树 SELECT extract(value(t),'/chapter').getstringval() ChapterName FROM t_content_metadata,TABLE( xmlsequence ( extract(XML_...

    oracle求同比,环比函数(LAG与LEAD)的详解

    Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。 代码如下:CREATE TABLE salaryByMonth( employeeNo varchar2(20)...

    常用Oracle分析函数大全

    Oracle的分析函数功能非常强大,工作这些年来经常用到。这次将平时经常使用到的分析函数整理出来,以备日后查看。 我们拿案例来学习,这样理解起来更容易一些。 1、建表 create table earnings -- 打工赚钱表 ( ...

Global site tag (gtag.js) - Google Analytics