Oracle 多个单引号的处理

本文介绍了在Oracle数据库中遇到单引号导致的问题及其分析过程,包括如何正确处理多个单引号以避免语法错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、发现问题

几个问题:

SELECT 'N' from dual;
SELECT '''N''' from dual;

SELECT '&a_b' from dual;
SELECT '''12&2''' from dual;

二、分析问题

1.在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是“就近原则”
eg:单引号引用
SQL> SELECT 'N' from dual;
'N'
---
N
eg:转义
SQL> SELECT '''N''' from dual;
'''N'''
-------
'N'
如果第二个单引号后面紧跟着单引号,此时第二个单引号充当转义;同理,第四个单引号后面又紧跟着单引号,此时第四个单引号充当转义。
另外 
SQL> SELECT ' '' ' FROM DUAL;
 
''''
------
'
 
SQL> SELECT '' '' FROM DUAL;
SELECT '' '' FROM DUAL
          *
ERROR 位于第 1 行:
ORA-00923: 未找到预期 FROM 关键字

转义是密集的,如果单引号出现在转义的位置上,而该单引号后面紧跟的不是单引号,这个时候单引号就不在充当转义的角色。

2.

&把a_b转移成变量。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值