在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义,开始学习时动态构成SQL时经常不解。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解。
1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。
SQL> SELECT '''' FROM DUAL;
''
--
'
为了证实结果是被第二个单引号转义的第三个单引号(既:SELECT '''' FROM DUAL;),我们做如下两个测试:
SQL> SELECT ''' FROM DUAL;
ERROR:
ORA-01756: 括号内的字符串没有正确结束
相信大家对这样的错误不陌生吧
SQL> SELECT 'SDLF FROM DUAL;
ERROR:
ORA-01756: 括号内的字符串没有正确结束
也就是说,当第二个单引号充当转义角色,第三个单引号被转义,(既:select '' ' from dual;)自然就缺少与第一个单引号匹配的单引号了,出现了孤立的单引号
下面的两个实验就更加支持了上面的结论。
SQL> SELECT ' '' ' FROM DUAL;
''''
------
'
SQL> SELECT '' '' FROM DUAL;
SELECT '' '' FROM DUAL
*
ERROR 位于第 1 行:
ORA-00923: 未找到预期 FROM 关键字
对于第一个:SELECT ' '' ' FROM DUAL;
对于第二个:不存在转义。
上面的这两个实验其实也是单引号转义与非转义的一个性质:转义是密集的,也就是说,如果单引号出现在转义的位置上,而该单引号后面紧跟(紧跟的定义为:两个单引号之间是零距离的)的不是单引号,这个时候单引号就不在充当转义的角色,而是与它前面的配对。
2、连接符‘||’导致了新一轮的转义:连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。
SQL> SELECT 'ORACLE'||'''' FROM DUAL;
'ORACLE'||''
----------
ORACLE'
个人理解,'ORACLE'||'''' 后面的“''''”应该认为是一个字符串(即前后单引号,中间是“''”串,而中间又是密集单引号,因此第一个为转义功能)
SQL> SELECT 'ORACLE''''' FROM DUAL;
'ORACLE'''''
------------
ORACLE''
对于第一个,前两个单引号配对,后面四个单引号按照上面的第一条原则分配,既:SELECT 'ORACLE'||'''' FROM DUAL;
对于第二个,由于第二个单引号后面存在单引号,所以就不与第一个配对,而是充当了转义的角色。既:SELECT 'ORACLE''''' FROM DUAL;
有了上面的两条原则,我们就可以从容的面对复杂的动态SQL了。
分享到:
相关推荐
SQL 中存储过程中 SQL 语句的单引号和双引号问题 在 SQL 中,单引号和双引号的问题是一个常见的混淆点,特别是在存储过程中编写 SQL 语句时。下面将对此问题进行详细的解释和总结。 一、单引号和双引号的基本概念 ...
oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...
而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。 SQL> select '''' result from dual; RESULT ------ ' 第二个单引号被作为转义...
在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...
Oracle SQL是数据库管理员和开发人员用来与Oracle数据库交互的语言,它是SQL标准的扩展,提供了许多特有的功能和优化。本资源“Oracle Sql基础(beginning oracle sql中文版)”旨在为初学者提供一个全面的Oracle ...
Oracle SQL 是一种强大的数据库查询和编程语言,广泛用于管理和操作Oracle数据库系统。11g第二版(11G2)是Oracle的一个重要版本,提供了许多增强功能和优化。本官方文档集包括四份重要的参考资料,涵盖了Oracle SQL...
Oracle SQL Developer 是一款由Oracle公司推出的免费数据库管理工具,它为数据库管理员(DBA)和开发人员提供了一个全面的集成环境,以便于管理和操作Oracle数据库。这个工具的强大之处在于其直观的用户界面和广泛的...
精通Oracle SQL【第2版】ORACLE SQL高级编程【第二版】学习笔记
Oracle SQL Developer 是一款由Oracle公司推出的强大的数据库管理工具,它为数据库管理员(DBA)、开发者以及数据分析师提供了全面的功能,以高效地管理和操作Oracle数据库。本文档将深入讲解Oracle SQL Developer的...
《精通Oracle SQL(第2版)》是一本深入解析Oracle数据库查询语言的专业书籍,由Oracle ACE和OakTable团队的专家共同撰写,集成了他们的丰富经验和专业知识。这本书旨在帮助读者掌握Oracle SQL的高级技巧,提升在...
### Oracle SQL Developer 使用教程 #### 一、Oracle Database Home Page 的使用 在开始介绍 Oracle SQL Developer 的使用之前,我们先来看看如何使用 Oracle Database Home Page。这部分内容非常重要,因为它是...
Oracle SQL 内置函数大全 SQL中的单记录函数 给出整数,返回对应的字符 连接两个字符串 增加或减去月份 用于对查询到的结果进行排序输出
第三章 ORACLE SQL 单行函数 第四章 从多表中查询数据 第五章 用组函数合计数据 第六章 子查询 第七章 操纵数据 第八章 创建和管理表 第九章 内置约束 第十章 创建视图 第十一章 其他数据库对象 第十二章 控制用户...
这款工具在Oracle数据库环境中扮演着重要角色,它可以帮助用户实时监控SQL语句的执行情况,识别性能瓶颈,从而提高系统的整体效率。 在描述中提到,SQLTracker可以在Windows 11操作系统上直接运行,这意味着它可能...
Oracle SQL是数据库管理和数据分析的重要工具,尤其在处理Oracle数据库时不可或缺。本文提供的经典练习题旨在帮助初学者熟悉SQL语句的编写,特别是针对Oracle数据库特有的功能。以下将详细讲解涉及的知识点。 1. **...
### Pro Oracle SQL (2010) 知识点概览 #### 一、书籍简介与作者背景 《Pro Oracle SQL》是一本于2010年出版的专业性极强的技术书籍,由Karen Morton、Kerry Osborne、Robyn Sands、Riyaj Shamsudeen 和 Jared ...
《Oracle SQL高级编程/数据库系列》的作者莫顿以精炼、风趣的语言揭开了Oracle SQL高级编程的神秘面纱。所涵盖的内容涉及SQL核心、SQL执行、分析函数、联结、测试与质量保证等,并提供大量实用性建议,且总结出...
《Pro Oracle SQL Development》这本书是Oracle SQL开发的专业指南,它深入探讨了Oracle数据库系统中的SQL语言使用和优化。Oracle SQL是用于管理和操作Oracle数据库的强大工具,对于任何在Java开发中涉及Oracle...
《精通Oracle SQL(第2版)》是一本深入解析Oracle数据库管理系统中SQL语言的专业书籍,旨在帮助读者全面理解和掌握在Oracle环境下高效、精准地运用SQL进行数据查询、操作和管理的技能。书中不仅包含了基础的SQL语法...