ora-30926错误 [英] ora-30926 error
本文介绍了ora-30926错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能重复:
ORA-30926:无法在源表中获得稳定的行集
Possible Duplicate:
ORA-30926: unable to get a stable set of rows in the source tables
我正在尝试执行以下merge语句,但正在向我显示ora-30926错误
I am trying to execute the following merge statement but is is showing me ora-30926 error
merge into test_output target_table
USING (SELECT c.test_code,
c.v_report_id, upper_score,
CASE WHEN c.test_code = 1 THEN b.mean_diff
WHEN c.test_code = 2 THEN b.norm_dist
WHEN c.test_code = 3 THEN b.ks_stats
WHEN c.test_code = 4 THEN b.ginni
WHEN c.test_code = 5 THEN b.auroc
WHEN c.test_code = 6 THEN b.info_stats
WHEN c.test_code = 7 THEN b.kl_stats
END val1
FROM combined_approach b inner join test_output c
on b.v_report_id = c.v_report_id
and c.upper_score = b.band_code
WHERE c.v_report_id = lv_report_id
ORDER BY c.test_code) source_table
on(target_table.v_report_id = source_table.v_report_id
and target_table.v_report_id = lv_report_id)
when matched then
update SET target_table.upper_value = source_table.val1;
推荐答案
我认为您有此错误,因为您在using子句中的行具有相同的v_report_id 您可以尝试一下
I think you have this error because you have rows having the same v_report_id on the using clause Could you try this
merge into test_output target_table
USING (SELECT
CASE WHEN c.test_code = 1 THEN b.mean_diff
WHEN c.test_code = 2 THEN b.norm_dist
WHEN c.test_code = 3 THEN b.ks_stats
WHEN c.test_code = 4 THEN b.ginni
WHEN c.test_code = 5 THEN b.auroc
WHEN c.test_code = 6 THEN b.info_stats
WHEN c.test_code = 7 THEN b.kl_stats
END val1
FROM combined_approach b inner join test_output c
on b.v_report_id = c.v_report_id
and c.upper_score = b.band_code
WHERE c.v_report_id = lv_report_id
group by v_report_id
) source_table
on (target_table.v_report_id = source_table.v_report_id
and target_table.v_report_id = lv_report_id)
when matched then update
SET target_table.upper_value = source_table.val1;
这篇关于ora-30926错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文