Oracle
 sql >> база данни >  >> RDS >> Oracle

oracle изтрива данни от отдалечена таблица на SQL Server

Мисля, че по-добрият въпрос е:Кой е най-добрият начин за преместване на данни от SQL Server към Oracle, който изтрива от MSSS всеки успешно доставен ред?

Правите това в цикъл, за да сте сигурни, че когато добавяте към едното, изтривате от другото.

Ако някакво неизвестно случайно нещо се случи с грешка при вмъкването, ще избегнете премахването на изходния запис.

Това е същината, нали?

Има много по-добри начини за справяне с този вид движение на данни, отколкото извършването след всеки цикъл на разпределена транзакция за вмъкване/изтриване.

Първо, ангажимент в средата на цикъл е просто лош. В Oracle това е добър начин да накарате други сесии да получават ORA-01555 грешки. Така че бих го избегнал, ако е възможно.

Второ, трябва абсолютно да знаете какви са възможните причини за разумни грешки при вмъкване. Нарушавате дължина на колона, FK, UK... има краен списък на това, което може да се счупи при вмъкване. Големи космати лоши прекъсвания като Unable to expand tablespace ТРЯБВА да накарат системата да спре. Няма нужда да хванете капан за това. Но проблемите с приложенията, както споменах, се управляват лесно.

Ако пишех това, щях групово да вмъкна всички редове, използвайки LOG на Oracle ГРЕШКИ В за да се избегне пълно ВЪЗСТАНОВЯВАНЕ, когато само един/няколко реда(а) са неуспешни.

Сега имате таблица, която съдържа всеки неуспешен ред и причината за неуспеха. Сега можете от страна на SQL Server да изтриете всички редове, които НЕ СА В списъка с неуспешни идентификатори.

Вие постигнахте същото, но с операции, базирани на набори, вместо БАВНО ПО БАВНО, опа, имам предвид ред по ред.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Фатална грешка:Извикване на недефинирана функция oci_connect()

  2. Стратегия за подобряване на производителността на Oracle DELETE

  3. Доставчикът не е съвместим с версията на клиента Oracle

  4. събиране на годишни обобщени данни за по-късен бърз достъп

  5. Как мога да извърша линейна интерполация с помощта на oracle SQL?