次のコードを使用してください。このエラーを取得する次のようなエラーにOracle - 1つのフィールドに行を追加する
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
TSQLはMSSQL用です。この質問はOracleです。 – Paparazzi
運がない。私が "to_Cont"を4000にキャストしてフィールドを使用しても、私はまだ同じエラーが発生しています。 – David