2017-10-15 14 views
0

テーブル私はOracleデータベースの "人生"を使って作業しています。テーブル内の非ラテン文字の検索(Oracle)

私が使用しているクエリは次のとおりです。

select * from table_name 
where field_name not like '%[a-z]%' 

私も試してみた:

select * from table_name 
where field_name not like '%[0-9]%' 

答えて

-2

ではなくnot likeの負likeをお試しください:

SELECT * 
FROM table_name 
WHERE field_name LIKE '%[^a-Z0-9]%' 

^表し、否定的

+1

を。 – MT0

+1

それは間違っている。私はなぜこれが "実用的な答え"として受け入れられたのか分かりません –

0

親切に提供されたクエリは、正規表現を使用していないため動作しません。

それでは、私は私の目標を達成するためにしなければならないことは次のとおりです。

  1. select column_name from table_name
  2. コピーメモ帳++ウィンドウに結果
  3. がフィールド「何検索」で次のようにFindのコマンドを実行します。[^A-za-z0-9/\\-?:().,'+ ] 「正規表現」を選択します。

実際に非ラテン文字のフィールドが返されます。

0

あなたはREGEXP_LIKE

SELECT COLUMN_NAME 
FROM TABLE_NAME 
WHERE REGEXP_LIKE(COLUMN_NAME, '[^A-Za-z0-9/\\-?:().,''+ ]'); 

または使用したい: `LIKE`は正規表現をサポートしていません

SELECT COLUMN_NAME 
FROM TABLE_NAME 
WHERE REGEXP_LIKE(
     COLUMN_NAME, 
     '[^'       -- Match any character that is not: 
     || CHR(9)      -- Horizontal Tab 
     || CHR(10)      -- Line Feed 
     || CHR(13)      -- Carriage Return 
     || CHR(32) || '-' || CHR(126) -- All characters from Space to Tilde 
     || ']' 
     ); 
関連する問題