【发布时间】:2021-04-06 18:36:36
【问题描述】:
所有,我已在 Oracle 中将列 c1 定义为 CLOB。我正在尝试使用 sql 查询 insert into t1 values(<large text>); 插入大文本,此查询给出的错误为 SQL Error: ORA-01704: string literal too long。当我将其分成多个块并使用sql命令插入时:insert into values (to_clob(<chunk1>) || to_clob(<chunk2>));,是成功的。
我不明白为什么将列定义为 CLOB 并尝试插入大文本失败?
将大文本分成更小的块是唯一的解决方案吗?
【问题讨论】:
-
价值从何而来?字符串文字被限制为
varchar2的长度。但是想要插入一个clob值作为文字真的很少见。如果您在应用程序中有一条 SQL 语句,您通常会为文本值使用绑定变量,它对字符串文字的长度没有限制。