ORA-22922:不存在的 LOB 值
阿新 • • 發佈:2018-12-29
ORA-22922:不存在的 LOB 值
開發中遇到的奇怪問題,寫個SQL語句,在plsql中查詢沒問題,在java中呼叫會報如
上錯誤,查了一些資料,沒看太明白,只是說WM_CONCAT()函式和group by、
distinct、union關鍵字聯合使用時,會有這個問題。先記錄下解決方案。
把wm_concat(欄位)換成listagg(欄位)within group(order by(欄位))
SQL的虛擬碼:
原SQL(有問題):
SELECT T.*, B.name
FROM A
LEFT JOIN (SELECT T.x,TO_CHAR(WM_CONCAT(T.name)) name
FROM T
GROUP BY x) B
ON A.x= B.x
修改後:
SELECT T.*, to_char(B.name)
FROM A
LEFT JOIN (SELECT T.x,
listagg(T.name,',')within group(order by(T.name))T.name
FROM T
GROUP BY x) B
ON A.x = B.x