ピリオド、ダッシュ、またはアンダースコアを除き、変数を使用して、データの列に存在する可能性のある特殊文字を見つけるために使用できるスクリプトを考え出そうとしています。
マイ データ - 従業員テーブル:
---------------------------------------------------------
ID | LASTFIRST | LAST_NAME | FIRST_NAME | MIDDLE_NAME
---------------------------------------------------------
57 | Miller, Bob | Miller | &^$#*)er | NULL
58 | Smith, Tom | Smith | Tom | B
59 | Perry, Pat | Perry | P. | Andrew
私のスクリプト:
VAR spchars VARCHAR
spchars := '!#$%&()*+/:;<=>?@[\\\]^`{}|~'
select *
from (select dcid, LastFirst, Last_Name, First_Name, middle_name,
CASE WHEN REGEXP_LIKE(First_Name, '[ || spchars || ]*$' )
THEN '0' ELSE '1' END AS FNSPC
from employees)
where FNSPC = '0';
/
そして、すべての行が返されます。
私がここで間違っていることは何か分かりますか? Bob Miller の行だけを選択したい。