Oracle拼接字符串的两种方式

1.listagg

     该方法拼接后是varchar2类型,有最大长度限制,在Oracle Database中,VARCHAR2 字段类型,最大值为4000;PL/SQL中 VARCHAR2 变量类型,最大字节长度为32767。

     适用场景:当要拼接的字符较少时使用。

select 'select ' ||col|| ' from ' || table_name ||';'
from
(
select owner||'.'||table_name as table_name,
       listagg(to_char(column_name),'||''^C''||') within group(order by owner||'.'||table_name )  as col
from all_tab_columns
where owner='USE' 
group by owner||'.'||table_name
);

2.xmlagg

     该方法拼接完后是CLOB对象,最多能容纳4GB的数据,查看时可用to_char()显示。

     适用场景:当要拼接的字符很多时使用。

select 'select ' ||to_char(col)|| ' from ' || table_name ||';'
from
(
select owner||'.'||table_name as table_name,
       xmlagg(xmlparse(content column_name||',' wellformed) order by column_name).getclobval() as col
from all_tab_columns
where owner='USE' 
group by owner||'.'||table_name
);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值