Heim  >  Artikel  >  Datenbank  >  Oracle存储过程中单引号及字符串拼接处理

Oracle存储过程中单引号及字符串拼接处理

WBOY
WBOYOriginal
2016-06-07 17:31:481373Durchsuche

在Oracle中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义

在Oracle中,单引号有两个作用,,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解

1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。   

select '''' from dual    ----output:'

 解释:第二个单引号被作为转义符,第三个单引号被转义,可将sql写成这样更好理解:

select ' '' ' from dual ----output:'

2、连接符‘||’导致了新一轮的转义:连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。

select 'name'||'''' from dual ----output:name'

理解:||后面的作为一个字符串,即前后是',中间又是一个密集型单引号串'',因此第一个为转义功能

select 'name''''' from dual ----output:name''

理解:第一个和最后一个单引号作为字符串引用符,中间四个单引号两两转义  。

在举几个简单例子:

一个单引号,是最正常的情况,比如:'asdfas',这代表一个字符串,显示的内容是 asdfas  ;

两个单引号,一般成对出现在一个单引号之内,表示一个单引号之内的单引号,比如

'sdfs''123''dfsdf',这种字符串显示的时候就是 sdfs'123'dfsdf

三个或四个单引号的情况是在一个和两个的情况之上发展出来的,比如'asd'''||输入值||'''',它显示的时候内容就是:

asd'输入值'。

(把一对两个单引号分开了,一部分在||之前,一部分在||之后)

(后面四个单引号分开看,中间两个是一对--代表一对单引号之内的一个单引号,外边两个是一对--代表一对单引号)

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn