[置顶] 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'输入值'。
(把一对两个单引号分开了,一部分在||之前,一部分在||之后)
(后面四个单引号分开看,中间两个是一对--代表一对单引号之内的一个单引号,外边两个是一对--代表一对单引号)
[置顶] oracle存储过程中单引号及字符串拼接处理的更多相关文章
- Oracle存储过程,以逗号分隔字符串传参的处理
Oracle存储过程,经常会遇见传入的参数是逗号分隔. 处理需要3步: 第一步,创建Type类型 第二部,创建函数 第三部,创建存储过程 代码如下: 第一步: create or replace ty ...
- [置顶] Oracle job procedure 存储过程定时任务
oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 select * from dba_jobs; selec ...
- [置顶] ORACLE分析函数(1)
分析函数式ORACLE提供的用来进行数据统计的强有力工具,与我们常用的聚合函数具有一些相似性,但又完全不同.聚合函数,首先会将数据进行分组,然后对每一组数据进行运算,如求和sum,求平均AVG等,对于 ...
- [置顶] Oracle 11g R2 RAC:使用 srvctl 工具管理 service 资源
1.使用 srvctl 工具创建 service 资源 srvctl add service -d db_unique_name -s service_name {-r "preferred ...
- [置顶] Oracle 11g R2 ASM:了解 Oracle ASM 基本概念
About Oracle ASM Instances About Oracle ASM Disk Groups About Mirroring and Failure Groups About Ora ...
- [置顶] Oracle GoldenGate 系列:使用 Oracle ASM API DBLOGREADER 时遇 ora-01031 错误
今天在自己新搭建的 Oracle ACFS 文件系统上测试 GoldenGate ,启动 extract 进程报如下错误: 2013-08-27 14:58:39 ERROR OGG-00446 ...
- [置顶] Mysql存储过程入门知识
Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...
- [置顶] Oracle 11g ASM:如何在 ASMCMD 命令行工具中创建 Oracle ACFS 文件系统
实验环境:Oracle 11g R2 RAC (11.2.0.3.5) Oracle Enterprise Linux 5.6 x86 1.创建 ASM 磁盘组 在两节点 ...
- [置顶] oracle 快速查询数据库各种信息、及转换对应java代码
1 查询表中数据量 select 'select '||''''||t.TABLE_NAME||''''||' as table_name, count(*) from '|| t.TABLE_NAM ...
随机推荐
- urlretrieve
urllib.urlretrieve(url[, filename[, reporthook[, data]]])参数说明:url:外部或者本地urlfilename:指定了保存到本地的路径(如果未指 ...
- Linux下Qt应用程序的发布(使用LDD命令查看所有依赖的库文件)
最近一直在学习Qt,用Qt写了一个程序,但是不知道怎么发布,网上说的都是在windows下怎么发布Qt应用程序,但是,在windows下Qt应用程序依赖的库文件与linux下的名字不同.于是,我就想到 ...
- 设计模式总结1--observer pattern
<!-- 设计模式 --><!--是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代 码可靠性 --&g ...
- vs2010 调试中监视变量
在msdn中写了如何查看调试的数据,网址: http://msdn.microsoft.com/zh-cn/library/vstudio/esta7c62(v=vs.100).aspx Visual ...
- 基于mini2440的IIC读写(裸机)
mini2440开发板提供的测试代码过于复杂,让人很难理解,而且有些错误,如GPE14-15不能设置上拉电阻,可是代码里却设置了,虽然无关紧要.为了方便学习,我在闲暇之时我研究了一下.IIC的原理是比 ...
- Python类的继承演示样例
class Pet: __name = "" def __init__(self, name): self.__name = name def bark(self): return ...
- [转]数位dp小记
转载自:http://blog.csdn.net/guognib/article/details/25472879 参考: http://www.cnblogs.com/jffifa/archive/ ...
- 使用jquery 1.7 及以后的版本 attr 问题
跟进jquery的代码进行检查,发现问题出在下面的代码中: if ( notxml ) { name = name.toLowerCase(); hooks = jQuery.attrHooks[ n ...
- Net Core在Linux环境
Net Core在Linux环境 基础环境和相关软件准备 1.CentOS7.1 64位系统(或者其他CentOS版本的64位系统) 2.WinSCP软件(主要是方便管理和编辑Linux系统的文件) ...
- Hibernate执行sql语句
Hibernate执行sql语句:BasicServiceImpl basicServiceImpl = new BasicServiceImpl();String hql = "selec ...