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: 仅可以为插入 LONG 列的 LONG 值赋值”解决办法