如何使用长文本处理Oracle SQL中的单引号

时间:2016-01-27 11:05:42

标签: sql oracle

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

我已经看过了

How to handle a single quote in Oracle SQL

但解决方案是手动操作,我试图插入包含大量单引号的长文本。一旦Oracle检测到',我的INSERT就无法运行。

我的问题是,是否有一种类似" set define off"我可以告诉Oracle禁用'在文中

3 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:2)

尝试使用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 :(得分:1)

您可以使用''跳过Quotation

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