请帮我纠正以下错误
MERGE INTO TBL_SERIAL_NUMBER_MASTER A
USING
( SELECT DISTINCT (SERIAL_NUMBER), FNN, HOST_NAME FROM TBL_INVENTORY
WHERE SERIAL_NUMBER IS NOT NULL) B
ON (A.SERIAL_NUMBER = B.SERIAL_NUMBER)
WHEN MATCHED THEN
UPDATE SET
A.DEVICE_FNN = B.FNN,
A.VALID = 'Valid',
A.HOST_NAME = B.HOST_NAME,
A.CHASSIS_MODULE = 'Chassis',
A.SN_SUPDATE_SOURCE = 'Inventory Master',
A.HOST_NAME_UPDATE_SOURCE = 'Inventory Master'
WHEN NOT MATCHED THEN
INSERT (A.SERIAL_NUMBER, A.DEVICE_FNN, A.VALID, A.HOST_NAME, A.CHASSIS_MODULE, A.SN_SUPDATE_SOURCE, A.HOST_NAME_UPDATE_SOURCE)
VALUES (B.SERIAL_NUMBER, B.FNN, 'Valid', B.HOST_NAME, 'Chassis', 'Inventory Master', 'Inventory Master');
COMMIT;
错误报告 -
SQL错误:ORA-30926:无法在源中获得稳定的行集 表 30926. 00000 - “无法在源表中获得稳定的行集”
原因:由于dml较大,无法获得稳定的行集 活动或非确定性的where子句。
操作:删除所有非确定性where子句并重新发出dml。合并了54,149行。