从SQL Developer将CLOB插入Oracle数据库

时间:2014-04-01 13:54:05

标签: oracle oracle11g oracle-sqldeveloper

我想在同一列的所有单元格中插入相同的长字符串,这是CLOB类型。

它说我应该使用“绑定变量”来做到这一点。所以我用Google搜索了这个:

variable xmlstuff CLOB;
exec :xmlstuff := '<?xml version="1.0"?> ... really long xml...';

UPDATE TABLE_NAME SET COLUMN_NAME = '&&xmlstuff';

现在仍然说

The string literal is longer than 4000 characters.

在这种情况下,绑定变量的正确用法是什么?

1 个答案:

答案 0 :(得分:1)

如果您使用C#或Java编程 - 只需使用OracleCLOB对象,它将执行所有必要的步骤。

如果要在SQL或PL / SQL中使用CLOB, 你需要分配它,并在使用后释放它。
搜索DBMS_LOB信息。

关于4000字节限制 - 这是SQL中的varchar2限制。
绕过这个 - 你可以使用PL / SQL - 它限制你的varchar是32KB,这不是你可以在CLOB中保存的4GB,但这是“自动”创建CLOB的限制。
如果你的字符串超过32K - 你必须使用DBMS_LOB将数据加载到clog对象中,方法是使用clob对象上的append。

这是我发现的最快的链接:http://geekswithblogs.net/robertphyatt/archive/2010/03/24/write-read-and-update-oracle-clobs-with-plsql.aspx

我想快速回答,所以如果您在获取此信息后无法解决问题,请告诉我 - 我会尝试更好地解释。