3

我创建了一个表

create table test_clob(
  value clob
);

如果我尝试在此表上插入数据大小超过 4000 字节的数据,则会出现以下错误

SQL Error: ORA-01704: string literal too long
01704. 00000 -  "string literal too long"
*Cause:    The string literal is longer than 4000 characters.
*Action:   Use a string literal of at most 4000 characters.
           Longer values may only be entered using bind variables.

我不知道如何使用绑定变量...

4

2 回答 2

3

您可以使用to_clob函数在 oracle 数据库中插入大文本。例如:字符串有超过 4000 个字符。然后使用查询:

插入 tableName(fieldName)values(to_clob('charCount=>4000')||to_clob('在 4000 char 之后但不超过 4000'));

例如:如果我有 6000 个字符,那么第一个 to_clob 中有 4000 个字符,然后是 to_clob 旁边的 2000 个字符:

于 2018-04-30T06:47:49.027 回答
0

TO_CLOBLOB列或其他字符串中的NCLOB值转换为CLOB值。char 可以是任何数据类型CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB 或 NCLOB。这是关于TO_CLOB的 Oracle 官方文档。要将数据插入 CLOB 列,请使用以下查询。

insert into tableName(
    column_name
) values (
    to_clob('charCount=>4000') || to_clob('after 4000 char but not more then 4000')
); 
于 2019-07-29T12:52:47.853 回答