私はOracleへの初心者だと私は、文字列から米国のストリートアドレスを解析する必要がありますを削除し、私は正規表現SUBSTRとオプションのカップルを試みたが、私は望ましい結果が得られませんでした。ここで解析・ストリートは、Oracle住所、不要なテキスト
は、テキスト文字列から数例です。
XYZ 123 SEスターク回目のスーツ401
XYX 123第39 AVE NE第二FLRのn-3
XYZ 213ネブラスカ勇気の道E-1
そして、私の出力は次のようになります。
123 SEスタークST
123これまでの第39回AVE NE
213ネブラスカ勇気の道
マイSQL:
SELECT UPPER (
REGEXP_SUBSTR (REPLACE ('xyz 2551 38th ave ne tc 2', 'xyz '),
'((^[0-9]{1,9}+[ ]+[0-9]{1}[/]+[0-9]{1})|(^[0-9]+))'))
AS houseno,
TRIM (
UPPER (
REGEXP_SUBSTR (
REPLACE ('xyz 2551 38th ave ne tc 2', 'xyz '),
'[^0-9]+((1()st|1st)|(2()nd|2nd)|(3()rd|3rd)|([1234567890]+()th|[1234567890]+th)) +(ave(nue)?|st(reet)?|boulevard|blvd)[[:print:]]*|P(.)O(.)()+Box()[0-9]+|[a-z][[:print:]]*',
1,
1,
'i')))
AS street_addrerss,
UPPER (REPLACE ('xyz 2551 38th ave ne tc 2', 'xyz ')) AS orginal_text
FROM DUAL;
ありがとうございます!
これは不公平に聞こえます。あなたが見せているように文字列からアドレスを抽出することは非常に難しい問題です。オラクルの初心者にそれを与えました。解決方法についての示唆はありませんでした。あなたはどのように住所と何が「不要なテキスト」であるかを認識することになっていますか?彼らはそれに対して何らかの規則を与えましたか? – mathguy
stringからストリート・アドレスを抽出し、このデータをOracle DBにロードする必要があります。彼らは住所行2を心配していません。 – nissamps
私の質問は分かりやすいと思っていましたが、もう一度やり直します。あなたの入力文字列を見ることで、住所(行1)の始まりと終点を知る方法は?たとえば、「アドレスは文字列の最初の桁で始まります」と言うことができます。けっこうだ;これはアドレスの前に "ガベージ"に数字を入れることができないということですか?いつまで?それが保証されていれば、それは良いと便利です。次に、アドレスENDSと残りの "ゴミ"の開始位置をどのように決定しますか? – mathguy