如何在 Oracle SQL 中处理单引号

Posted

技术标签:

【中文标题】如何在 Oracle SQL 中处理单引号【英文标题】:How to handle a single quote in Oracle SQL 【发布时间】:2010-05-20 15:30:01 【问题描述】:

如何在具有单引号的 varchar 数据类型的列中插入记录?

示例:名字是ROBERT,姓氏是D'COSTA

【问题讨论】:

【参考方案1】:

使用两个单引号

SQL> SELECT 'D''COSTA' name FROM DUAL;

NAME
-------
D'COSTA

或者,使用new (10g+) quoting method:

SQL> SELECT q'$D'COSTA$' NAME FROM DUAL;

NAME
-------
D'COSTA

【讨论】:

如果我们需要两个连续的单引号怎么办?在这种情况下,“替代”方法是否适用? @RichouHunter 您将使用四个单引号:'D''''COSTA' => D''COSTA。或者:q'$D''COSTA$' 谢谢,这对我有帮助!作为参考,这里有另一个Oracle document,关于文本文字的替代引用语法,它比链接的 PL/SQL 文档读起来要好一些。 @Dank 我同意,关于此主题的 SQL 参考比 PL/SQL 文档更清晰(我已将链接更新到最新版本)。【参考方案2】:

我发现上面的答案给出了 Oracle SQL 的错误,您还必须使用方括号,如下;

SQL> SELECT Q'[Paddy O'Reilly]' FROM DUAL;


结果:Paddy O'Reilly

【讨论】:

以上是关于如何在 Oracle SQL 中处理单引号的主要内容,如果未能解决你的问题,请参考以下文章

如何在oracle中预测和转义单引号'

如何在oracle中插入含有半角单引号'的字符串

如何插入包含单引号的字符串

oracle 中如何将字符串中的英文单引号替换为右斜杠+英文单引号

Oracle 语句如何转义

sql语句中,如何表示单引号