我正在使用Oracle數據庫中的「lives」工具(介意我可憐的英語)。在表中查找非拉丁字符(Oracle)
我使用的查詢是:
select * from table_name
where field_name not like '%[a-z]%'
我也試過:
select * from table_name
where field_name not like '%[0-9]%'
我正在使用Oracle數據庫中的「lives」工具(介意我可憐的英語)。在表中查找非拉丁字符(Oracle)
我使用的查詢是:
select * from table_name
where field_name not like '%[a-z]%'
我也試過:
select * from table_name
where field_name not like '%[0-9]%'
嘗試的not like
負like
來代替:
SELECT *
FROM table_name
WHERE field_name LIKE '%[^a-Z0-9]%'
的^
表示否定的。
由於沒有使用正則表達式,您所提供的查詢將無法正常工作。
所以我必須做的,以實現我的目標是:
select column_name from table_name
Find
命令「查找內容」字段:[^A-za-z0-9/\\-?:().,'+ ]
,選擇「正則表達式」它確實返回帶有非拉丁字符的字段。
你想用REGEXP_LIKE
SELECT COLUMN_NAME
FROM TABLE_NAME
WHERE REGEXP_LIKE(COLUMN_NAME, '[^A-Za-z0-9/\\-?:().,''+ ]');
或:
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
|| ']'
);
'LIKE'不支持正則表達式。 – MT0
這顯然是錯誤的。我不明白爲什麼這被認爲是一個「工作答案」 –