• 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'' 理解:第一个和最后一个单引号作为字符串引用符,中间四个单引号两两转义。   
     
     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'
     
  • 相关阅读:
    Educational Codeforces Round 81 (Rated for Div. 2)(训练)
    Prime Path(POJ) 3126
    前端知识(一)04 Vue.js入门-谷粒学院
    前端知识(一)03 初识 ECMAScript 6-谷粒学院
    前端知识(一)02 初识 Node.js-谷粒学院
    前端知识(一)01 前端开发和前端开发工具-谷粒学院
    同步和异步、阻塞和非阻塞
    给HTML页面设置自己的icon
    解决MyBatis-Plus 3.3.1中自动生成代码tinyint(1)无法自动转换为Boolean 的办法
    驼峰命名和短横线命名的转换
  • 原文地址:https://www.cnblogs.com/quzq/p/11396163.html
Copyright © 2020-2023  润新知