Transfer von Daten aus Oracle mittels SSIS (Fortsetzung)

Beim Versuch das SSIS Paket, welches die Attunity Treiber für den Zugriff auf Oracle verwendet produktiv zu setzen und per SQL Agent täglich auszuführen, sind weitere Themen aufgetreten:

Da am Server nur ein 32bit-Treiber zur Verfügung steht, muss das Paket auch im 32-bit Modus ausgeführt werden. Dies kann im SQL Agent Step in den Execution Properties mittels Checkbox aktiviert werden.

Attunity kann produktiv nur in einer SQL Server Enterprise Edition genutzt werden, obwohl das Paket im Debugging sauber funktioniert. Deshalb muss ein Umbau auf den ADO.NET-Treiber erfolgen, der wie im ersten Beitrag erwähnt, Nachteile hat.

Folgende Punkte sind zu beachten

  • Verwendung des ADO.NET Providers „.Net Providers for OleDb\Oracle Provider for OLE DB“
  • Da SSIS Oracle-NUMERIC Werte nicht auf FLOAT sondern auf NUMERIC(38,4) konvertiert, kann es zu Fehlern mit zumeist wenig aussagekräftigen Meldungen kommen (es wird der Fehler für eine andere Spalte gemeldet, als jene in der die Truncation tatsächlich passiert). Workaround ist es im Quell-SQL-Statement alle NUMERIC-Felder mit ROUND(Column,4) auf vier Nachkommastellen zu runden.

Ein weiterer Vorteil von ADO.NET ist, dass auch Oracle-Functions verwendet werden können, was vom Attunity Provider nicht unterstützt wird.

 

 

Advertisements