REPLACE()
が正しく動作しない理由を理解できません。交換機能が正常に動作しない
RISHON_LEZION-CMTSDV4,Cable7/0/4/U1;RISHON_LEZION-CMTSDV4,Cable7/0/4/U2;RISHON_LEZION-CMTSDV4,Cable7/0/5/U0;.....
最大4000文字:
私はとしてフォーマットされた文字列を取得しています。
;
の各拠点は、新しい文字列を表します(1つの文字列で最大15文字まで)。私はREPLACE()
を使用して、それを分割しています - ;
の各出現は、$
と交換+ラインを下る+再び文字列全体CONCAT(私は文字列を下に分割された別の部分を持っている)
私は、文字列の長さを考えます私は決してリプレイスが文字列の長さについて何らかの種類の制限を持っていると聞いたことはありませんが、結果にどのように影響しますか。
SELECT REPLACE(HOT_ALERTKEY_PK, ';', '$' || CHR(13) || CHR(10) || HOT_ALERTKEY_PK || '$')
from (SELECT 'RISHON_LEZION-CMTSDV4,Cable7/0/3/U0;RISHON_LEZION-CMTSDV4,Cable7/0/3/U1;RISHON_LEZION-CMTSDV4,Cable7/0/3/U2;RISHON_LEZION-CMTSDV4,Cable7/0/4/U0;RISHON_LEZION-CMTSDV4,Cable7/0/4/U1;RISHON_LEZION-CMTSDV4,Cable7/0/4/U2;RISHON_LEZION-CMTSDV4,Cable7/0/5/U0;RISHON_LEZION-CMTSDV4,Cable7/0/5/U1;RISHON_LEZION-CMTSDV4,Cable7/0/5/U2;RISHON_LEZION-CMTSDV4,Cable7/0/7/U0;RISHON_LEZION-CMTSDV4,Cable7/0/7/U1;RISHON_LEZION-CMTSDV4,Cable7/0/7/U2;RISHON_LEZION-CMTSDV4,Cable7/0/9/U0;RISHON_LEZION-CMTSDV4,Cable7/0/9/U1;RISHON_LEZION-CMTSDV4,Cable7/0/9/U2' as hot_alertkey_pk
FROM dual)
cable7/0/5/U0;
まで、正確に文字列を分割で何らかの理由で結果の
これとは停止します。文字列の最初から1つ以上の部分を削除すると(セミコラムまでが各部分です)、次のケーブルに接続します。
どうしてですか?
ありがとうございます。
私は、TO_CLOB()を使用してInformaticaで動作した後に、TEXT(50000)にカラムのサイズを増やしてみました。あなたがこれを捕まえる唯一の人だったので答えを受け入れる。ありがとう。 – sagi