首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle将超过4K个字符的文本插入到clob

Oracle将超过4K个字符的文本插入到clob
EN

Stack Overflow用户
提问于 2021-11-19 05:45:42
回答 1查看 56关注 0票数 0

在clob中插入超过4K个字符是有限制的,我在Java语言中的做法是将长文本分成每个4K字符的块,然后与to_clob()连接,这样做效果很好

但是,我的文本通常包含‘’,例如-“abc‘’def”

当在“”the“”之间切分文本时,插入的文本不正确…

例如-to_clob(“abc‘) || to_clob(”’def‘“)你知道怎么解决这个问题吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-11-19 09:20:26

在clob中插入超过4K个字符是有限制的

不,没有。在CHAR/VARCHAR2数据类型中有4000字节的(历史)限制,这包括字符串文字。

代码语言:javascript
复制
'This string literal has a 4000 byte limit.'

这与CLOB数据类型或TO_CLOB函数无关。

我用Java语言做这件事的方法是把长文本切成4K个字符的块,然后用to_clob()连接起来,效果很好

别干那事。使用bind variable

代码语言:javascript
复制
String your_string = "A very long string..."
PreparedStatement ps = connection.prepareStatement(
  "INSERT INTO table_name(clob_column) VALUES (?)"
);
Clob clob = connection.createClob();
clob.setString(1, your_string);
ps.setClob(1, clob);

或者:

代码语言:javascript
复制
String your_string = "A very long string..."
PreparedStatement ps = connection.prepareStatement(
  "INSERT INTO table_name(clob_column) VALUES (?)"
);
ByteArrayInputStream inputStream = new ByteArrayInputStream(your_string.getBytes());
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
ps.setClob(1, inputStreamReader);

然而,我的文本通常包括'',例如- " abc''def "

''之间对文本进行切片时,插入的文本不正确…

例如- to_clob("abc') || to_clob("'def")你知道怎么解决这个问题吗?

不要切分文本。

如果你打算对文本进行切片(不要),那么你要么不能将它分割成两个单引号,要么用双引号来转义单引号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70030398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档