У меня есть этот атом c dml в oracle (фрагмент кода-1)
У меня есть 2936 строк для вставки, но 2934 строк вставлено.
В противном случае у меня также есть этот l oop (фрагмент кода-2), который учитывает только первые 2934, но две последние строки игнорируются
, что происходит в рабочей среде. доступ к которому у меня ограничен (данные около 1 МБ)
Так что в тестовой среде. Я попытался воспроизвести ту же проблему с той же структурой таблицы и схожими данными, около 18 000 успешно вставленных строк.
Что может быть проблемой, если последние две строки игнорируются?
фрагмент кода-1
INSERT INTO MY_TARGET_TABLE
(
COL1,
COL2,
COL3,
...
COLN,
)
SELECT
B.YEAR,
B.MONTH,
P.SOME_COL,
...
B.MY_DECIMAL_VALUE
FROM MY_SOURCE_TABLE B
JOIN MY_SOURCE_VIEW P
...
WHERE B.YEAR = P_YEAR
AND B.MONTH = P_MONTH
AND B.SOME_STATUS_ID = 5
AND B.IS_ACTIVE = 0
AND B.MY_DECIMAL_VALUE > 0;
фрагмент кода-2
FOR ROW_ITEM IN(
SELECT
COL1,
COL2,
COL3,
...
SUM(NVL(MY_DECIMAL_VALUE,0) / 100)
FROM MY_SOURCE_TABLE B
JOIN MY_SOURCE_VIEW P
ON ...
WHERE B.YEAR = P_YEAR
AND B.MONTH = P_MONTH
AND B.SOME_STATUS_ID = 5
AND B.IS_ACTIVE = 0
AND B.MY_DECIMAL_VALUE > 0;
GROUP BY
....
)
LOOP
P_SOME_PROCEDURE(...)
END LOOP;