2015-11-06 45 views
1

我們有一個表格集合,我們需要創建一個視圖...視圖中有30個列。一個(最後一個)列使用listagg來聚合其中一個表的多個值......另一個列是來自另一個表的BLOB。Oracle 12 - Blob in group-by列表中斷listagg?

一切都很順利,我一次創建了視圖一列。添加listagg - 然後開始添加所有的group-by列..當我添加BLOB列時,錯誤不一致的數據類型返回..期待 - 得到BLOB

所以,只是一個普遍的問題,......在list-list列的分組列列表中有一個BLOB列會打破整個事情嗎?有沒有辦法只使用SQL來解決這個問題?

任何和所有的見解和建議表示讚賞。由於涉及到多個表格和多個列,我希望能夠在不嘗試構建整個案例以供審閱的情況下,充分解釋情況以獲得建議。

+0

你能編輯你的問題並顯示你的查詢嗎?或者至少是一個具有相同錯誤的簡化版本? –

回答

2

您無法按LOB列進行分組。如果您從一個表中獲取listagg,然後希望從第二個表中選擇信息,那麼爲什麼在進行連接之前不要先進行分組?

例如,例如:

select t1.col1, 
     t1.col2, 
     t1.grouped_col3, 
     t2.blob_col 
from (select col1, 
       col2, 
       listagg(col3, ',') within group (order by col4) grouped_col3 
     from  first_table 
     group by col1, col2) t1 
     inner join t2 on (t1.col1 = t2.col1 and t1.col2 = t2.col2); 
+0

完美!謝謝.. – user761758

+0

,如果blob列在表1中?正在加入同一張桌子兩次允許在這裏>? – user761758

+0

你可以加入內部查詢中的同一張表嗎? – user761758