在clob中插入超过4K个字符是有限制的,我在Java语言中的做法是将长文本分成每个4K字符的块,然后与to_clob()连接,这样做效果很好
但是,我的文本通常包含‘’,例如-“abc‘’def”
当在“”the“”之间切分文本时,插入的文本不正确…
例如-to_clob(“abc‘) || to_clob(”’def‘“)你知道怎么解决这个问题吗?
谢谢
发布于 2021-11-19 09:20:26
在clob中插入超过4K个字符是有限制的
不,没有。在CHAR/VARCHAR2数据类型中有4000字节的(历史)限制,这包括字符串文字。
'This string literal has a 4000 byte limit.'这与CLOB数据类型或TO_CLOB函数无关。
我用Java语言做这件事的方法是把长文本切成4K个字符的块,然后用
to_clob()连接起来,效果很好
别干那事。使用bind variable。
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);或者:
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")你知道怎么解决这个问题吗?
不要切分文本。
如果你打算对文本进行切片(不要),那么你要么不能将它分割成两个单引号,要么用双引号来转义单引号。
https://stackoverflow.com/questions/70030398
复制相似问题