我们使用Oracle得到以下错误:
[Oracle JDBC Driver]应用程序故障转移不支持非单select语句
当我们尝试对大量的行(数千万行)进行删除或插入操作时,会出现这个错误。
我知道这个脚本是有效的,因为在这些错误消息开始弹出之前,它已经工作了将近一年。
我们知道没有人改变任何数据库配置,所以我们认为问题一定是在处理的数据量上(行数随着时间的推移而增长…)。
但是我们从来没有见过这种错误!这是什么意思?似乎故障转移引擎试图从错误中恢复,但是当oracle被这个引擎"接管"时,它进入一个更受限制的状态,其中某些类型的查询不工作(如Windows安全模式…)
好吧,如果这是正在发生的事情,我怎么才能得到真正的错误信息?触发故障转移机制的那个?
顺便说一句,下面是触发错误的一个删除:
delete from odf_ca_rnv_av_snapshot_week
(我们尝试这个只是为了测试我们能想到的最简单的删除…截断并不能帮助我们处理真正的问题:))
查看此链接
错误似乎不是来自Oracle或JDBC,而是来自"progress"。这意味着它只能从SELECT
语句中恢复,不能从DML中恢复。
您必须首先找出故障转移发生的原因。