Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Oracle正则表达式查询中转义单个引号_Sql_Regex_Oracle - Fatal编程技术网

Sql 在Oracle正则表达式查询中转义单个引号

Sql 在Oracle正则表达式查询中转义单个引号,sql,regex,oracle,Sql,Regex,Oracle,这真的开始痛了 我正在尝试使用正则表达式条件在Oracle developer中编写查询 我的目标是查找所有姓氏,这些姓氏包含名称中通常不包含的字符(非字母、空格、连字符和单引号) i、 e。 我需要找到 J00ls McDonald "Macca" Smithy (Smith) 找不到 Smith Mckenzie-Smith El Hassan O'Dowd 我现在的问题是 select * from dm_name WHERE regexp_like(last_name, '([^A

这真的开始痛了

我正在尝试使用正则表达式条件在Oracle developer中编写查询

我的目标是查找所有姓氏,这些姓氏包含名称中通常不包含的字符(非字母、空格、连字符和单引号)

i、 e。 我需要找到

J00ls
McDonald "Macca"
Smithy (Smith)
找不到

Smith
Mckenzie-Smith
El Hassan
O'Dowd
我现在的问题是

select * from dm_name 
WHERE regexp_like(last_name, '([^A-Za-z -])')
and batch_id = 'ATEST';
这排除了除单一报价之外的所有预期。在放置单引号字符时,Oracvel SQL DevelopePR解析器将其作为文本

我试过:

\' -- but got a "missing right parenthesis" error
||chr(39)|| -- but the search returned nothing
'' -- negated the previous character in the matching group e.g. '([^A-Za-z -''])' made names with '-' return.
如果您能提供任何服务,我将不胜感激。

以下作品:

select * 
  from dm_name 
  WHERE regexp_like(last_name, '([^A-Za-z ''-])');

SQL开发人员是否喜欢它是我无法证明的,因为我没有安装该产品


分享和享受。

只需将单个报价翻一番,即可摆脱您的报价

所以

另见此。注意,我在sqldeveloper中尝试了一个类似的查询,效果很好

另外请注意,若要执行此操作,
-
字符必须是组中的最后一个字符,否则它将尝试查找组
空间
,而不是字符
-

select *
  from dm_name
 where regexp_like(last_name, '[^A-Za-z ''-]')
   and batch_id = 'ATEST'