データベース内でOracle 11gを使用し、SQL言語としてPL/SQLを使用して、テーブル内の特定の列を検証します。PL/SQLでRegExpを使用して都市名を検証する方法
要件(S):
それが唯一の英字と数字なしを含むように "都市名" を検証します。
サンノゼやサンフランシスコなどの都市のためのスペースを入れることができます。
function ValidateCity(city in varchar2) return varchar2 is valid varchar2(50) := 'valid'; begin if not REGEXP_LIKE (city, '^[A-Z\s]*$') then valid := (case when valid = 'valid' then '' else valid end) || 'Does not match pattern ^[A-Z\s]*$ '; else valid := 'Required '; end if; return valid; end;
スペースがあるときに私はいない「ツーソン」のような単一の都市名を渡すが、とき、これは、例えば、動作しますサンフランシスコまたはロサンゼルス。
ヒント/ご提案/アドバイスをお待ちしております。
は
[:スペースは:] POSIX文字ですクラス。スペース、改行、垂直タブ、水平タブが含まれます。あなたは都市名の一部としてそれらを受け入れることを意味しましたか?そして、はい、タブ文字を入力するのは難しいかもしれませんが、いくつかの種類のクエリには大混乱が生じます。 –
私はこれについても疑問に思っていましたが、元の例には特定の方言にこれらのすべてを含む '\ s'がありました:p – fge
fge:ありがとうございます!はい、「サンフランシスコ」や「ロサンゼルス」などの名前の間にスペースがある都市では機能しますが、「KAILUA-KONA」などのダッシュを含む都市でも機能する必要があります。^[A-Z] +([[ - ]] [A-Z] +)* $を使って試しましたが、うまくいきませんでした。すべての助けに感謝します。 –