逗号分隔的字符串转换为行数据(collection)(续)
2016-12-03 15:24
260 查看
逗号分隔的字符串转行数据的存储过程一个:
2,调用存储过程方法,获取转化后的行数据(collection)
打开Collection,可看到是这个字段是一个只有一列的列名为COLUMN_VALUE的表。
3,得到的这个值,因为是collection,不能直接使用。例如:
4,所以必须先把这个语句转化成Table类型。然后,当作一个表Table使用,通过COLUMN_VALUE获取里面的值。
5,使用表,获取值。
CREATE OR REPLACE FUNCTION SP_YX_SPLIT ( p_list CLOB, p_sep VARCHAR2 := ',' ) RETURN tabletype PIPELINED /************************************** * Name: split * Author: zhaoqiang. * Date: 2014-10-03. * Function: 返回字符串被指定字符分割后的表类型。 * Parameters: p_list: 待分割的字符串。 p_sep: 分隔符,默认逗号,也可以指定字符或字符串。 * Example: SELECT * FROM users WHERE u_id IN (SELECT COLUMN_VALUE FROM table (split ('1,2'))) 返回u_id为1和2的两行数据。 **************************************/ IS l_idx PLS_INTEGER; v_list VARCHAR2 (32676) := p_list; BEGIN LOOP l_idx := INSTR (v_list, p_sep); IF l_idx > 0 THEN PIPE ROW (SUBSTR (v_list, 1, l_idx - 1)); v_list := SUBSTR (v_list, l_idx + LENGTH (p_sep)); ELSE PIPE ROW (v_list); EXIT; END IF; END LOOP; END;
2,调用存储过程方法,获取转化后的行数据(collection)
select SP_YX_SPLIT('2,43,43,43',',') from dual
打开Collection,可看到是这个字段是一个只有一列的列名为COLUMN_VALUE的表。
3,得到的这个值,因为是collection,不能直接使用。例如:
4,所以必须先把这个语句转化成Table类型。然后,当作一个表Table使用,通过COLUMN_VALUE获取里面的值。
5,使用表,获取值。
where gs.movetypeid='201' and gs.createdate between '20161203' and '20161203' and gs.customerid='00010' and m1.materialsortid in (SELECT COLUMN_VALUE FROM table ((select SP_YX_SPLIT('00000000000000001283,00000000000000000714',',') from dual)))
相关文章推荐
- 逗号分隔的字符串转换为行数据(collection)
- [原创]SQL表值函数:把用逗号分隔的字符串转换成表格数据
- Oracle将以逗号分隔的数字字符串根据字典表转换为中文字符串
- SQL转换列为以逗号分隔的字符串
- 从textarea中空格、逗号、换行转换为逗号分隔的字符串 js string.split
- 把数组转换为一个用逗号分隔的字符串
- 【第5篇】使用json-lib把json字符串数据转换成Collection
- 将以逗号分隔的字符串转换成字符串数组
- 逗号分隔字符串转换为一张表--解决查询in(逗号分隔字符串)出错问题
- 把数组转换为一个用逗号分隔的字符串
- MSSQL将逗号分隔的字符串转换成列显示
- 转换字符串的字符成单个字符并用逗号分隔
- .net去除逗号分隔的字符串中的重复数据
- 如何把一个逗号分隔的字符串转换成数组 并且倒序输出
- sql将列转换为以逗号分隔的字符串
- 将List中的数据组成用逗号分隔的字符串,如'a','b','c'
- 把某一列值转换为逗号分隔字符串
- 把一个逗号分隔的字符串转换为一个字符串数组
- SQL Server将表的一列转换成逗号分隔的字符串
- 把某一个用逗号或者/或者其他符号作为间隔的字符串分隔成一张表数据。