oracle中将几个字段拼接成超长字符串(超过4000字节)更新到lob字段中,怎么处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中将几个字段拼接成超长字符串(超过4000字节)更新到lob字段中,怎么处理?相关的知识,希望对你有一定的参考价值。

参考技术A 可以将拼接的内容使用to_clob(),
例如:
UPDATE test_table R SET R.NAME =
to_clob('WITH T1 AS......(可以写很多)')||
to_clob(' AND RNF.FORM_OF_WAY = 2')
where r.name is null

Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法

select billid,CONTAINER_NO from FM_PACKING_LINE
查询的结果是

我想把billid等于15609的所有 CONTAINER_NO 值合并在同一字段
要显示这个

,求Oracle的sql语句,谢谢

1、先创建一个JSONObject对象。

2、然后把JSONObject对象转换成字符串且把“”去掉,因为等下需要拼接其他数据。

3、判断转换完的字符串是否是空数据还有已经有数据了,如果有就需要加“,”。

4、字符串开始拼接字符串,这里被拼接的字符串一定要符合json格式。

5、字符串拼接完成后把之前去掉的“”重新加上代表一个完整的json字符串结束。

6、重新把拼接好的字符串转换成JSONObject。

7、然后使用get(key)的方法来获取拼接字符串的属性值,能获得就说明拼接的字符串有效了。

参考技术A select wm_concat(t.email) from TEMP t,这是oracle 自带函数,如果超过4000会报错,超过4000就只能自己写函数了 参考技术B select billid,listagg(container_no,';') within group (order by container_no) from fm_packing_line group by billid

追问

大神 我执行了

但是报错了  结果是这样的 ,我是Oracle10g

追答select billid, replace(wm_concat(container_no), ',', ';') container_no
  from fm_packing_line
 group by billid

参考技术C with temp as(
select 'China' nation ,'Guangzhou' city from dual union all
select 'China' nation ,'Shanghai' city from dual union all
select 'China' nation ,'Beijing' city from dual union all
select 'USA' nation ,'New York' city from dual union all
select 'USA' nation ,'Bostom' city from dual union all
select 'Japan' nation ,'Tokyo' city from dual
)
select nation,listagg(city,',') within GROUP (order by city)
from temp
group by nation

这是最基础的用法:
LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)

用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来。
非常方便
参考技术D 可以考虑使用wmsys.wm_concat方法,该方法是将记录的值使用逗号间隔拼接
使用方法如下:
select wmsys.wm_concat(name) name from idtable;
NAME
---------- --------------------------------------------------------------------------------
ab,bc,cd

以上是关于oracle中将几个字段拼接成超长字符串(超过4000字节)更新到lob字段中,怎么处理?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法

oracle 导出超长Clob字段insert语句执行报字段过长的问题解决方案

oracle 数据库code 拼接字段如何转换成文字

oracle 将表中所有字段拼接成一个字符串给另一个表的一个字段

1、sql查询语句时怎么把几个字段拼接成一个字段?这几个字段是整型的。

oracle 字段拼接