Оператор оновлення до відмови Oracle в SSIS Execute SQL Task

Я повинен виконати деякі оновлення операторів з SSIS в Oracle, які я не можу поставити в збережених Proc. Ця операція працює в Oracle, але я отримую помилку при виконанні з SSIS. Я використовую завдання виконання SQL з властивостями SQL Source Type = Прямий вхід, BypassPrepare = True. При виконанні завдання, він просто висить протягом 20 хвилин або близько того. Потім натиснув на припинити налагодження.

UPDATE   Table1 R
  SET   R.Column1 =
           (SELECT   SUM (Column2)
              FROM   Table2 M

             WHERE                                
                  M.Column3 IS NULL AND M.Column4 = R.Column4)
WHERE   EXISTS (  SELECT   Column4 AS Column4
                    FROM   Table2 M

                   WHERE                          
                        M.Column3 IS NULL AND M.Column4 = R.Column4
                GROUP BY   Column4)   `
0
У чому полягає помилка?
додано Автор SQLMason, джерело
"але я отримую помилку при виконанні з SSIS" Ви, напевно, просто блокує, тому це займає 20 хвилин. Щось інше оновлення під час спроби оновлення. Використовуйте фактичні DLL Oracle, якщо це можливо, замість версій MS. Я виявив, що вони краще ... швидше у мене менше проблем.
додано Автор SQLMason, джерело
Немає помилки, вона просто не завершує обробку
додано Автор needshelp, джерело
Крім того, на сторінці результатів виконання, я бачу попередження: операції з декількома кроками OLE DB породили помилки. Перевірте кожне значення стану OLE DB, якщо воно доступне. Не було зроблено жодної роботи.
додано Автор needshelp, джерело
Чи можете ви надіслати мені приклад того, як "використовувати фактичні DLL Oracle, якщо це можливо, замість версій MS". Я не впевнений, що ви маєте на увазі. Я навіть спробував просту заяву як UPDATE Table1 R SET R.Column1 = 1. Це також зависає. UPDATE Таблиця1 R SET R.Column1 = 1; (зверніть увагу на крапку з комою). так само UPDATE Table1 R SET R.Column1 = 1; фіксація; і UPDATE Table1 R SET R.Column1 = 1 (на новому рядку) фіксації
додано Автор needshelp, джерело

1 Відповіді

Коли це сталося зі мною, це було тому, що я залишив транзакцію відкритою. Я використовував SQL Developer для скидання значень стовпців у цільовій таблиці під час тестування. (Розробник SQL не використовує неявні операції за замовчуванням.)

Ось деталь:

SSIS PL/SQL завдання зависає з повідомленням "Послідовна операція OLE DB згенерована помилками."

2
додано
ДЯКУЮ!!! Це було те, що сталося зі мною.
додано Автор Xander, джерело