【问题标题】:Using apostrophe in like clause in oracle sql query for wild search [duplicate]在oracle sql查询中的like子句中使用撇号进行狂野搜索[重复]
【发布时间】:2020-09-03 16:33:00
【问题描述】:

我正在尝试搜索其中包含撇号的名称,例如 O'Brian 并尝试使用以下查询。

select * from <Table Name> where first_name like '%'%';

但是,我收到无效标识符的错误

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    因为Oracle将第二个'解释为你的字符串的结尾,所以%'的剩余部分超出了字符串,被解析为SQL,显然是无效的SQL语法。

    为了防止这种情况,您应该转义中间的 ' 符号,在 Oracle 中,它是通过键入两个后续撇号来完成的,因此您可以使用 '%''%'

    【讨论】:

    • 感谢 Alex 的快速回复,这很有效。
    【解决方案2】:

    您可以将替代报价机制用作q'[]'

    在您的情况下,查询应该是这样的:

    select * from <Table Name> where first_name like q'[%'%]';
    

    【讨论】:

    • 谢谢 Atif,很高兴知道这个搜索机制
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2018-08-14
    • 2018-03-25
    相关资源
    最近更新 更多