вставить в выборку из игнорирования вопроса о двух последних строках - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть этот атом 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;     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...