SELECT ( SELECT wm_concat(u.user_name) from table(strsplit(wcc.participants_user_id)) t INNER JOIN qx.leap_user u ON u.uuid=t.COLUMN_VALUE) user_name, wcc.* FROM WORK_CLIENT_CONTENT wcc
一、创建数组类型
CREATE OR REPLACE TYPE strsplit_type IS TABLE OF VARCHAR2(512)
二、创建字符串分割函数
create or replace function strsplit(p_value varchar2,
p_split varchar2 := ',')
return strsplit_type
pipelined is
v_idx integer;
v_str varchar2(500);
v_strs_last varchar2(4000) := p_value;
begin
loop
v_idx := instr(v_strs_last, p_split);
exit when v_idx = 0;
v_str := substr(v_strs_last, 1, v_idx - 1);
v_strs_last := substr(v_strs_last, v_idx + 1);
pipe row(v_str);
end loop;
pipe row(v_strs_last);
return;
end strsplit;
三、调用
--usage: select * from table(strsplit('1,2,3,4,5'))
DECLARE
V_ARRAY T_RET_TABLE;
BEGIN
V_ARRAY := F_SPLIT_STRING('1,2,3,4,5,6',',');
FOR I IN 1..V_ARRAY.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(V_ARRAY(i));
END LOOP;
END;
相关推荐
oracle 某列存儲的值是有逗號的字符串,希望通過逗號分隔開來顯示多行。sql,有預期結果,有項目實戰。
ORACLE中CLOB字段转String类型
Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”。 想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5。 一、最终实现的sql语句 1、获取交集(相同值)...
oracle存储过程中入参是逗号分隔,并且参数要使用在in过滤语句中查询数据。处理的方法与实现
oracle拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。
突然想到Oracle有一个编码转换的函数叫Convert,如果一个字符串编码转换前后不一样表示字符串里面含有非ASCII字符,这样得到结果。后写出来测试了一下,确实可行,5500万记录10秒钟扫描结束。以下是测试用例: ...
项目需求是这样的表里的某个字段存储的值是以逗号分隔开来的,要求根据分隔的每一个值都能查出来数据,但是不能使用like查询。这篇文章主要介绍了Oracle字段根据逗号分割查询数据,需要的朋友可以参考下
把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
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('我...
NULL 博文链接:https://czjxdm.iteye.com/blog/466948
oracle非数字合计,将字段中含有汉子的数据自动转换为 数字0
往数据库中添加数据时,字段值自动加1: 1、创建表 2、创建序列 3、创建触发器
oracle 中字符串截取 。oracle中字符截取的函数。
找了网上很多资料,都没有详细的做法有的还很复杂,自己写了个分割函数,通过直接查询就能分割多行,很方便。
Oracle接收长度大于4000的字符串 Oracle接收长度大于4000的字符串
介绍了将多行转为字符串的三种方案,并比较了三种方案的执行效率. 1.sys_connect_by_path + start with ... connect by ... prior + 分析函数 2.自定义Function/SP 3.使用 Oracle 10g 内置函数 wmsys.wm_concat
* 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序
自己工作时写的oracle搜索数据库,查找想要找的字符串.配置简单,省去单独写sql的时间.运行需要jre运行环境.
不做详解,直接上图。 SELECT T.NAME, T.TESTSTR FROM TEST2 T; SELECT DISTINCT T.NAME, REPLACE(REGEXP_SUBSTR(T.TESTSTR, '[^,]+', 1, LEVEL), ',', ' ') TESTSTR FROM TEST2 T WHERE 1 = 1 ...
//去掉该字段后面15位字符串 select t.depre_name, substr(t.depre_name, 0, (length(t.depre_name) - 16)) from table t where t.del_flag = '0' 【备注】一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关...