在具有O'NEILL名称的数据库中搜索记录

时间:2016-09-06 06:31:45

标签: sql oracle

我有一个表,其中包含名称为O'NEILL的字符串类型的记录,当我使用以下查询时使用查询进行搜索:

select * from street_list where str_name='O'NEILL AVE'

我确实收到了以下错误:

  

12:00:16 [SELECT - 0 row(s),0.000 secs] [错误代码:933,SQL状态:42000] ORA-00933:SQL命令未正确结束

您能否指导我如何搜索我的数据库中的记录。我使用的是oracle 11 g。

4 个答案:

答案 0 :(得分:2)

select * from street_list where str_name='O''NEILL AVE'

e.g。

with street_list as
(select 'O''NEILL AVE' as str_name from dual)
select * from street_list where str_name = 'O''NEILL AVE'

答案 1 :(得分:0)

我认为您没有完全匹配的数据,因此您可以通过以下方式使用查询:

select * from street_list where str_name like 'O''NEILL AVE%'

答案 2 :(得分:0)

select * from street_list where str_name='O''NEILL AVE'

此查询工作正常。正如你在你的记录字符串类型中所说的那样,名字为O' NEILL,并且在Where条件下你的传递O' NEILL AVE。请检查一下。如果在记录中,名称字符串是O' NEILL并且您传递了O' NEILL AVE,那么您的查询不会获取您需要编写此类查询的记录

select * from street_list where str_name='O''NEILL'

答案 3 :(得分:0)

使用转义引号。

这是另一个澄清的例子:

select '''Today is '' '|| sysdate from dual 'Today is ' 06/09/16