ORA-01461 带有 MERGE INTO 语句和 clob 列

Posted

技术标签:

【中文标题】ORA-01461 带有 MERGE INTO 语句和 clob 列【英文标题】:ORA-01461 with MERGE INTO statement and clob column 【发布时间】:2012-08-13 19:08:55 【问题描述】:

查询:

MERGE INTO app_role_data x USING (select ? name, ? xml FROM dual) d ON (x.app_name = d.name) WHEN MATCHED THEN UPDATE SET x.xml_blob = d.xml WHEN NOT MATCHED THEN INSERT(app_name, xml_blob) VALUES(d.name, d.xml)

桌子:

create table app_role_data(app_name varchar2(64), xml_blob clob);

结果:当一行存在时,我们得到 ORA-01461。

期望的目标:这是对该表中一行的有效“创建或替换”操作。如果表中存在“名称”,则应更新 xml 列,否则插入新行。

【问题讨论】:

嗯。事实证明,当行 也存在时会发生这种情况。它曾经工作过。不知道为什么突然就不行了。也许这是一个长度问题 - xml 数据已经神奇地超过了某个限制? 【参考方案1】:

我认为这可以通过使用 Spring 框架文档 11.7.2 中记录的 Spring JDBC LOB 设置功能来解决。

但是,这也不起作用......但将成为另一个问题的主题。

【讨论】:

你好。你能否让我知道你是如何解决这个问题的。我在这里描述了非常相似的一个:***.com/questions/43349999/….

以上是关于ORA-01461 带有 MERGE INTO 语句和 clob 列的主要内容,如果未能解决你的问题,请参考以下文章

oracle: sql语句报ora-01461/ora-00911错误

这两个不同的 ORA 错误(ORA-12899 和 ORA-01461)如何链接在一起

平台中配置网格列表样式报:ORA-01461错误

ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值”解决办法

java.sql.SQLException: ORA-01461: 只能绑定 LONG 值以插入 LONG 列

程序插入数据报错ORA-01461: can bind a LONG value only for