如何在具有单引号的CLOB数据类型(如此大的文本)的列中插入记录?
我已经看过了
How to handle a single quote in Oracle SQL
但解决方案是手动操作,我试图插入包含大量单引号的长文本。一旦Oracle检测到',我的INSERT就无法运行。
我的问题是,是否有一种类似" set define off"我可以告诉Oracle禁用'在文中
答案 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