私は興味深い謎に少し助けを探しています。ちょうど可変長のIDが準拠していないテキストフィールドに埋め込まれていることが判明しました。このIDはシステムリンケージにとって重要です。合理的に正確な4〜12桁の数値IDのリストが維持されているため、説明付きメモフィールド内のIDに埋め込まれたIDと一致する可能性があります。VarChar2(30)ORACLE:埋め込まれたIDと一致する参照をパーズします
ターゲットプラットフォームはOracle 12c & DataStage 8.5これを実行する。希望する結果は、適切な4〜12桁の数値IDを持つ列を単純に持つことであり、一致しない場合はnullがリストされます。
文字列内の連続番号のNOT_DESC文字をスキャンします。数値ストリングの各項で、ルックアップリストに対する結果値をチェックします。何かのようなもの loop1(テーブル内の各行)... loop2(各NOTE_DESC文字)...数値の場合は、loop3(各listvalue)を入力して、リスト内の各数値を入れ子にしたif文でチェックして長さを削除する(regexp_substr(substrこの方法は、ルックアップリストに何百ものものがあるので、リソース集約的です。誰かがこのような問題に近づいたり、この問題を解決するコードを持っているなら、私は不思議です。
データ例:異なるIDSの 独立維持ルックアップリスト:{123、1234、5678、12345、123456、1234567}なお、ここでNOTE_DESCフィールドの例のリストは次のとおり
- JS 1234クローズドは(一致1234の所望の結果を有する)
- 123456月の裁定(123456、所望の結果に一致)バル5678(5678の所望の結果と一致)
- 12-3バル調整(一致従ってヌル結果)を閉じる
- 1-23-45ジョンソン(マッチしないので、ヌル結果)
- ベンダー123489(ノーマッチので、ヌル結果)
重要ですか?おそらくNOTE_DESCフィールドに表示される順序の最初のものでしょうか?または、IDに優先順位がありますか?または、NOTE_DESC値が複数のIDと一致する場合、結果に複数の行があるはずですか?また、2345は23と234の両方に一致します(また45も同様)。または、連続した数字の完全な文字列が一致している場合にのみ一致します(数字の "部分文字列"は見られなくてはなりません)?私の例では、2345だけが一致するが、234はABC2345-200と一致しないだろうか? – mathguy