【发布时间】:2020-09-03 16:33:00
【问题描述】:
我正在尝试搜索其中包含撇号的名称,例如 O'Brian 并尝试使用以下查询。
select * from <Table Name> where first_name like '%'%';
但是,我收到无效标识符的错误
【问题讨论】:
我正在尝试搜索其中包含撇号的名称,例如 O'Brian 并尝试使用以下查询。
select * from <Table Name> where first_name like '%'%';
但是,我收到无效标识符的错误
【问题讨论】:
因为Oracle将第二个'解释为你的字符串的结尾,所以%'的剩余部分超出了字符串,被解析为SQL,显然是无效的SQL语法。
为了防止这种情况,您应该转义中间的 ' 符号,在 Oracle 中,它是通过键入两个后续撇号来完成的,因此您可以使用 '%''%'
【讨论】:
您可以将替代报价机制用作q'[]'
在您的情况下,查询应该是这样的:
select * from <Table Name> where first_name like q'[%'%]';
【讨论】: