使用以下代碼。不斷收到以下錯誤Oracle - 在一個字段中一起添加行
Select distinct
ship_L.ship_ID,
ship_L.Item_Num,
C.sku,
C.ob_oid,
c.Container
From (
Select distinct
ob_oid,
sku,
substr((ltrim(sys_Connect_By_Path(trim(to_Cont),'/'))),2,(length(ltrim(sys_Connect_By_Path(trim(to_Cont),'/'))))) as Container
From (
Select distinct
Ob_oid,
sku,
To_Cont,
row_number() Over (Partition by sku order by to_Cont) -1 as seq
From (
Select distinct
ob_oid,
sku,
To_Cont
from elite_76_w1.ITH_f
--Where ob_oid = '237472'
-- and sku = '64154'
)
)
Where connect_By_Isleaf = 1
Connect by seq = Prior seq +1 and sku = Prior sku
Start with seq = 1
) C
Left Join elite_76_D.ship_L
on ship_L.ship_id = C.ob_oid
and ship_L.item_num = C.sku
WHere C.ob_oid = '237472'
and C.sku = '64154'
收到此錯誤: ORA-01489:字符串連接的結果是太長01489. 00000 - 「字符串連接的結果是太長」 *原因:字符串concatenatin結果大於最大尺寸。 *操作:確保結果比最大尺寸更小。供應商代碼1489Error在第3行
開始: SKU位置 64154 A153945
64154 A153943
64154 A153947
64154 A153946
64154 A153944
極品: 64154 A153944/A153945/A153946/A153947
謝謝大家的幫助, David
由於這是一個猜測,我會評論,不發表。在最內層查詢中將「to_cont」轉換爲較大的VARCHAR()。例如,它是一個VARCHAR(32),將它轉換爲VARCHAR(4000)。 *** [所有假設您的輸出字段被限制爲與您的輸入相同的長度,這可能會因此在您的輸出中允許更多字符。] ***如果4000不夠用,您可以查看在CLOB上,但是其他代碼不適用於該數據類型。 – MatBailie 2012-03-02 18:21:11
TSQL適用於MSSQL。這個問題是Oracle。 – Paparazzi 2012-03-02 20:21:04
沒有運氣。即使我將「to_Cont」投放到4000個使用該字段的地方,我仍然遇到同樣的錯誤。 – David 2012-03-05 14:24:26