MERGE INTO A
USING (
SELECT B_1,B_2,B_3,SUM(B_4)
FROM B
GROUP BY B_1,B_2,B_3) srt
ON (
A.A_1 = B.B_1
AND NVL (A.A_2, 0) =
NVL (B.B_2, 0)
AND NVL (A.A_3, ' ') =
NVL (B.B_3, ' ') )
WHEN MATCHED
THEN 'DML STATEMENT';
выше выдает ошибку
Причина: java.sql.SQLException: ORA-06502: PL/SQL: числовая ошибка или ошибка значения: ошибка преобразования символа в число ORA-30926: невозможно получить стабильный набор строк в исходных таблицах
Но когда вы заменяете приведенный выше запрос приведенным ниже NVL (EXPR, -1), он работает без ошибок. Можно ли предвидеть любую причину, которую я не могу видеть?
MERGE INTO A
USING (
SELECT B_1,B_2,B_3,SUM(B_4)
FROM B
GROUP BY B_1,B_2,B_3) srt
ON (
A.A_1 = B.B_1
AND NVL (A.A_2, -1) =
NVL (B.B_2, -1)
AND NVL (A.A_3, ' ') =
NVL (B.B_3, ' ') )
WHEN MATCHED
THEN 'DML STATEMENT';
B
в предложении ON, гдеB
не может быть известно; должно бытьsrt
. - person Thorsten Kettner   schedule 16.02.2017