だからあなたが尋ねたように。私の提案は通過することですregular expressions。これがあなたのケースの更新コードです。
フィールド アドレスを含むテーブル テストがあるとします。必要なことは非常に簡単で、要件に一致する正規表現を作成します。
Stだから:すべてを置き換える必要がStreetありAv、Avenueこれがあなたがすべきことです。
update test
set address =
regexp_replace(
regexp_replace(address, 'Av | Av$| Av ', ' Avenue ' ),
'St | St$| St ', ' Street ');
SQLFiddle の例を次に示します。
正規表現の説明:
regexp_replace正規表現パターンに基づいて文字列を別の文字列に置き換えます。ドキュメントを参照してください: REGEXP_REPLACE
正規表現については、ここで確認できます。正規表現 Wikiほぼすべての言語がPOSIXパターンに従っているので、一度学べば上手になります。
regexp_replaceあなたが2つの要件を与えたので、私はあなたが望むものを達成するのに慣れていました。関数のパラメータについては書きません。式だけです。
最初の式で、これは次のこと'Av | Av$| Av 'を意味します: PS .:-スペースが見えるように を置きます (無視してください)。だから入れさせてくれません。
-Av -(末尾にスペースあり) =Av文字列の後ろにスペースがあるもの
をすべて検索-|-or(パイプ記号) =ステートメント
に等しい- Av$-=Av前にスペースAvがあり、文字列の最後にある場合はすべて検索します。$
- Av -Av=前後にスペースがあるすべてを検索
次に、関数はこれらの出現のいずれかを単語に置き換えますAvenue。次のようなことを避けるために、前後にスペースを入れていることに注意してくださいPeer HarborAvenue
同じ説明がSt文字列にも当てはまります
正規表現関数が気に入った場合は、ここで詳細を確認できます: Oracle 正規表現関数