我試圖創建一個簡單的存儲過程,將查詢結果存儲到一個字符串中。oracle pl/sql結果爲一個字符串
v_string1 varchar2(100);
Select column1
From dual;
將返回
column 1
--------
aaaa
bbbb
cccc
我想存儲「AAAA,BBBB,中交」進v_string1。 和所有我能想到的是一個光標... 有沒有更好的辦法處理這種
我試圖創建一個簡單的存儲過程,將查詢結果存儲到一個字符串中。oracle pl/sql結果爲一個字符串
v_string1 varchar2(100);
Select column1
From dual;
將返回
column 1
--------
aaaa
bbbb
cccc
我想存儲「AAAA,BBBB,中交」進v_string1。 和所有我能想到的是一個光標... 有沒有更好的辦法處理這種
使用SQL Fiddle:
select LISTAGG(name, ',') WITHIN GROUP (ORDER BY 1) AS names
from temp_table
一還沒有選擇使用在Oracle 11G之前可以工作的純SQL,但字符串仍然限制爲4000個字符。
Select ltrim(max(names), ', ') as names
From (
Select sys_connect_by_path(name, ' ,') as names
From (
Select name, row_number() over (order by name) as rown
From temp_table
)
Start with rown = 1
Connect by rown = prior rown + 1
)
[替代在甲骨文LISTAGG?]的可能重複(http://stackoverflow.com/questions/9412512/alternative-to-listagg-in-oracle) – DCookie