oracle 数据库 分割字符串返回结果集函数

CREATE OR REPLACE FUNCTION "UFN_SPLIT" (      p_list varchar2,      p_sep varchar2 := ‘,‘   )  return TYPE_SPLIT pipelined    is      l_idx  pls_integer;      v_list  varchar2(4000) := p_list;       v_num number(18,0) := 1;       o_TABLESPLIT  OBJ_TABLESPLIT ;   begin      loop

l_idx := instr(v_list,p_sep);         if l_idx > 0 then

o_TABLESPLIT := OBJ_TABLESPLIT(v_num,substr(v_list,1,l_idx-1));           pipe row(o_TABLESPLIT);             v_list := substr(v_list,l_idx+length(p_sep));         else           o_TABLESPLIT := OBJ_TABLESPLIT(v_num,v_list);           pipe row(o_TABLESPLIT);             exit;         end if;         v_num := v_num + 1;    end loop;      return;

END UFN_SPLIT;

CREATE OR REPLACE TYPE "OBJ_TABLESPLIT" as object
(
  sIndex NUMBER(18,0),
  sValue varchar2(200)
);

CREATE OR REPLACE TYPE "TYPE_SPLIT" is table of OBJ_TABLESPLIT

时间: 2024-10-16 23:00:38

oracle 数据库 分割字符串返回结果集函数的相关文章

关于sql server远程访问Oracle数据库 OpenQuery查询返回多条数据的问题

在Sql Server远程访问Oracle 中的数据库表时: 远程语法通常为: select * from OpenQuery(Oracle链接服务器名称,‘查询语句’) eg: select * from OPENQUERY(QTX,'select * from student') 有些情况下只会返回student表一条数据 第一条 解决方法:数据源ODBC中 选择系统DNS 时,新建系统数据源 选择的对应驱动应该为Oracle Instant Client Dricver  这个驱动需要安装

Oracle数据库的字符串学习

一.虚表 dual,只用来操作,没有数据. 二.字符串函数 1:字符串拼接函数 concat(p1,p2)或者||: eg:将字符串"hello"和"kitty"进行拼接 select concat('hello','kitty') from dual或者select 'hello' ||' '|| 'kitty' from dual; 2:字符串长度函数 length(); eg:统计字符串"no zuo no die"的长度 select l

Oracle数据库空字符串和空字符串比较的问题

今天在公司遇到了一个问题,页面上传输回来的值总是有问题,一路排查下来发现是sql出现了,查看sql中发现从页面上传回来了两个值都是空的,就是''这个样子的.然后再对这个两个值进行了等于判断''='' 然后Oracle返回的是false. 举例: select * from emp where 1=1 结果: 然后我们更变条件变成 ''='' select * from emp where ''='' 结果: 解决方法:使用nvl()函数来处理 select * from emp where nv

【oracle】oracle REGEXP_SUBSTR分割字符串

REGEXP_SUBSTR的使用:通过REGEXP_SUBSTR进行数据分割: SELECT REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i') AS STR FROM DUAL CONNECT BY LEVEL <= LENGTH('17,20,23') - LENGTH(REGEXP_REPLACE('17,20,23', ',', ''))+1; 查询结果:

Oracle 正则表达式 分割字符串

inData='12345|张三|男' SELECT REGEXP_SUBSTR (inData, '[^|]+', 1,1) into 用户ID FROM DUAL;SELECT REGEXP_SUBSTR (inData, '[^|]+', 1,2) into 用户姓名 FROM DUAL;SELECT REGEXP_SUBSTR (inData, '[^|]+', 1,3) into 性别 FROM DUAL;

tk Mapper Oracle数据库插入时返回主键

主键生成策略 @Id @GeneratedValue(strategy = GenerationType.IDENTITY, generator="SELECT F_DEMO_SEQ.NEXTVAL FROM DUAL") private Long id; MapperScannerConfigurer <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer"> <property

ODP.NET 之访问 Oracle 数据库

ODP.NET 之访问 Oracle 数据库 要相使用 Oracle Data Provider For .NET(ODP.NET), 必须先安装 ODP.NET 或者是 ODAC(Oracle Data Access Components) (ODAC 中包含 ODP.NET 这个组件) 最好是把 ODT.NET 也安装上,这样,以后在 Visual Studio 中开发 Oracle 应用程序会方便很多的, 还是提供一个下载地址吧, http://www.oracle.com/technol

VC/MFC分割字符串(SplitString)返回CStringArray

引自:http://bbs.csdn.net/topics/60321228 原版: CStringArray* SplitString(CString string, char pattern) { CStringArray* strArray = new CStringArray(); CString strTemp; char c; for(int i=0;i<string.GetLength();i++) { c=string[i]; if(c==pattern) { strArray-

解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题

我们使用Spring中的JdbcDaoSupport往Mysql中插入数据并返回主键代码,我们使用的mysql数据库,主键在数据库中设置为自增长:该类继承自JdbcDaoSupport,所以能直接使用getJdbcTemplate() public int saveUser(String userName,int age,String password){ getJdbcTemplate().update(new PreparedStatementCreator() { public Prepa