21、Oracle:字符串中包含单引号怎么到数据库中查询

直接查询会报:ora:00907缺失右括号的异常

1.可以使用转义的方式,匹配:you are' beautiful可以使用:'you are'' beautiful'的方式

2.可以使用替换字符的方式:

sql = @"select * from table1 where replace(remark, '''', '‘')  in ('{0}')"

这里将数据库中的remark中的所有单引号换成中文的左单引号(此时外部匹配的字符串也要有这样的转换,可以使用正则函数)

例如:customername = regex.raplace(customername, "[']", "‘"),然后将customername丢到sql的in中去

3.第三种方法参见下文,常用的可以用q'[you are'beautiful]'

下文来自:https://www.2cto.com/database/201307/229728.html

1.关于在字符串中包含单引号

字符串是引用字符串的,如果字符串本身就包含单引号怎么办?

用2个单引号表示或者以q或Q开头,然后后面是字符串,字符串的第1个字符和最后结束的字符是分割符号,中间的引号随便写,如果开始是[,<,(,{结束一定要是],>,),}。但是开始如果是],>,),}那么结束要和开始相同,其他的符号,+,|,或字母a,A,等,开始和结束相同,包括大小写。

例子如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SQL> select 'you are' ' beautiful' from dual;
 
'YOUARE' 'BEAUTIFUL
------------------
you are' beautiful
 
select q '[you are' beautiful] ' from dual;
 
 
Q' [YOUARE 'BEAUTIFU
----------------------
you are' beautiful
 
SQL> select q '+it' s a cat+ ' from dual
   2  /
 
Q' +IT 'SACAT+'
-------------
it 's a cat
 
 
SQL> select Q' Ait 's a cata' from dual
   2  /
 
select Q 'Ait' s a cata' from dual

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值