2

ピリオド、ダッシュ、またはアンダースコアを除き、変数を使用して、データの列に存在する可能性のある特殊文字を見つけるために使用できるスクリプトを考え出そうとしています。

マイ データ - 従業員テーブル:

---------------------------------------------------------
 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 の行だけを選択したい。

4

1 に答える 1