【问题标题】:How to handle a single quote in Oracle SQL with long text如何在 Oracle SQL 中处理带有长文本的单引号
【发布时间】:2016-05-04 07:10:25
【问题描述】:

如何在具有单引号的 CLOB 数据类型(如此大的文本)的列中插入记录?

我已经看过了

How to handle a single quote in Oracle SQL

但解决方案是手动操作,我正在尝试插入包含大量单引号的长文本。一旦 Oracle 检测到 ',我的 INSERT 就不起作用了。

我的问题是,是否有类似“set define off”这样的命令,我可以告诉 Oracle 禁用文本中的 '

【问题讨论】:

标签: sql oracle


【解决方案1】:

尝试使用Q' 运算符;例如:

create table t_clob ( a clob)

insert into t_clob values (q'[START aa'a''aa aa 'a'' aa'a'  a'a' a END]')

【讨论】:

    【解决方案2】:

    您可以使用带引号的表示法:

    SELECT q'|text'containing'quotes|' FROM DUAL

    管道可以替换为任何匹配的符号。开头和结尾必须是相同的符号,除非使用括号,然后是 ()[]{}

    https://docs.oracle.com/database/121/SQLRF/sql_elements003.htm#SQLRF00218

    【讨论】:

    • 嗨@Husqvik,我不想听起来那么愚蠢,但我怎么能像插入一样实现它,我的意思是,我正在读一些关于“sele from dual”的东西,但我想要的是插入形式进入表名值(Value1,Value2 ..)与选择有什么关系?
    • @Enrique 答案是解释你应该使用的语法,你必须根据你的需要调整它。刚刚编辑了我的答案以显示 insert 示例
    【解决方案3】:

    你可以用''跳过Quotation的意思

    select 'hello this''s an example for '' in between string ' from dual 
    

    【讨论】:

      猜你喜欢
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2011-04-27
      相关资源
      最近更新 更多