oracle存储过程中拼接字符串及转移逗号
发布时间:2020-12-12 12:39:54 所属栏目:百科 来源:网络整理
导读:? 在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解??? ? 1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个) ? ? select ?
?
1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)
? ?
select ?
‘‘
‘‘ ?
from ?
dual;?
--output:‘ # 第二个单引号被作为转义符,第三个单引号被转义,可将sql写成这样更好理解:select?‘?‘‘?‘?from?dual --output:‘???
?
2、连接符‘||’导致了新一轮的转义:连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。?
? ?
select ?
‘name‘
||
‘‘
‘‘ ?
from ?
dual;?
--output:name‘??理解:||后面的作为一个字符串,即前后是‘,中间又是一个密集型单引号串‘‘,因此第一个为转义功能
? ?select?‘name‘‘‘‘‘?from?dual --output:name‘‘?理解:第一个和最后一个单引号作为字符串引用符,中间四个单引号两两转义。???
?3.?
举几个简单例子:???一个单引号,是最正常的情况,比如:
‘asdfas‘
,这代表一个字符串,显示的内容是?asdfas??;
? ?两个单引号,一般成对出现在一个单引号之内,表示一个单引号之内的单引号,比如?
‘sdfs‘
‘123‘
‘dfsdf‘
,这种字符串显示的时候就是?sdfs
‘123‘
dfsdf
? ?三个或四个单引号的情况是在一个和两个的情况之上发展出来的,比如
‘asd‘
‘‘
||输入值||
‘‘
‘‘
,它显示的时候内容就是:?asd
‘输入值‘
。
? (把一对两个单引号分开了,一部分在||之前,一部分在||之后)?(后面四个单引号分开看,中间两个是一对
--代表一对单引号之内的一个单引号,外边两个是一对--代表一对单引号
?
4. 举例如下:
z:=‘alter session set time_zone=‘‘‘||WET||‘‘‘‘
alter session set time_zone=‘WET‘
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |