【发布时间】: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 数据已经神奇地超过了某个限制?
标签: oracle jdbc clob ora-01461