【问题标题】:How to handle a single quote in Oracle SQL如何在 Oracle SQL 中处理单引号
【发布时间】:2017-06-05 08:00:03
【问题描述】:

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

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

【问题讨论】:

    标签: sql oracle escaping


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2016-05-04
      • 1970-01-01
      • 2011-04-27
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      相关资源
      最近更新 更多