Benutzer mit den meisten Antworten
Fehlermeldung bei Import Oracle Tabellen per ODBC Treiber

Frage
-
Hallo,
ich verwende SQL Server 2008 (Developer) und möchte per Datenimport 32bit einzelne Tabellen einer Oracle 9i Datenbank importieren. Ich habe bereits verschiedene Möglichkeiten versucht: MS ODBC, Oracle ODBC und ADO.NET ODBC. Letzteren setze ich ein und kann Tabellen ohne Zahlenwerte problemlos importieren, bei Zahlenwerten kommt nachstehende Fehlermeldung mit verbundenen Abbruch, d. h. die Tabelle wird zwar im Zielsystem angelegt, allerdings ohne Daten:
"Fehler 0xc0209029: 1-Datenflusstask: SSIS-Fehlercode 'DTS_E_INDUCEDTRANSFORMFAILUREONERROR'. Fehler bei 'Komponente 'Quelle - BESTELL' (1)' aufgrund des Fehlercodes 0x80131938. Die Fehlerzeilendisposition in 'Ausgabespalte 'ME2_EP' (145)' gibt an, dass der Vorgang bei einem Fehler nicht ausgeführt werden kann. Es wurde ein Fehler im angegebenen Objekt der angegebenen Komponente festgestellt. Möglicherweise wurden bereits Fehlermeldungen veröffentlicht, die weitere Fehlerinformationen beinhalten.
(SQL Server-Import/Export-Assistent)
Fehler 0xc02090f5: 1-Datenflusstask: 'Komponente 'Quelle - BESTELL' (1)' konnte die Daten nicht verarbeiten. Die Pipelinekomponente hat den HRESULT-Fehlercode 0xC0209029 von einem Methodenaufruf zurückgegeben.
(SQL Server-Import/Export-Assistent)
Fehler 0xc0047038: 1-Datenflusstask: SSIS-Fehlercode 'DTS_E_PRIMEOUTPUTFAILED'. Die PrimeOutput-Methode in 'Komponente 'Quelle - BESTELL' (1)' hat den Fehlercode 0xC02090F5 zurückgegeben. Die Komponente gab einen Fehlercode zurück, als das Pipelinemodul 'PrimeOutput()' aufgerufen hat. Die Bedeutung des Fehlercodes wird von der Komponente definiert. Der Fehler ist jedoch schwerwiegend, und die Ausführung der Pipeline wurde beendet. Möglicherweise wurden bereits Fehlermeldungen veröffentlicht, die weitere Fehlerinformationen beinhalten.
(SQL Server-Import/Export-Assistent)"Es handelt sich um Zahlen mit dem Wert "129", die ich einzeln in NVCHAR im Zeilenmapper konvertieren müsste. Allerdings habe ich sehr viele dieser Werte, sodass ich das kaum manuell machen kann.
Weiß jemand eine Lösung? Danke!
MfG, Jürgen
Antworten
-
Hallo Uwe, hallo Christoph,
besten Dank nochmals für Eure Hilfe. In der Zwischenzeit konnte ich einen Verbindungsserver auf dem System einrichten - die JAVA Komponente war vorher nicht korrekt installiert, sodass der Oracle Client nicht richtig funktionierte.
Schönen Gruß,
Jürgen
- Als Antwort markiert Andrei Talmaciu Freitag, 28. Januar 2011 11:47
Alle Antworten
-
Hallo Jürgen,
warum nicht als LINKED Server. Damit hast Du die vollständige Kontrolle.
Der - IMHO - Vorteil von Linked Server ist m. E. die Transparenz, da Du mittels T-SQL die Daten schnell und bequem importieren kannst.
Mehr Informationen zu Linked Server und im speziellen zu ORACLE als LINKED Server:
http://support.microsoft.com/kb/280106/de
http://www.sqlmag.com/article/sql-server/setting-up-an-oracle-linked-server49687.aspxDie Daten kannst Du dann entweder mittels OPENQUERY und PL/SQL oder aber mittels 3-Punkt Notation übertragen.
Informationen zu OPENQUERY findest Du hier:
http://msdn.microsoft.com/en-us/library/aa276848(v=sql.80).aspxSehr gut - und passend zu diesem Thema auch der Blogeintrag von John Paul Cook mit anschaulichen Beispielen:
http://sqlblog.com/blogs/john_paul_cook/archive/2009/07/31/linked-server-vs-openquery-for-handling-data-type-conversions.aspxEinen guten Rutsch in das neue Jahr...
Uwe Ricken
Microsoft Certified Database Administrator SQL Server 2005
db Berater GmbH
http://www-db-berater.de -
Hallo Uwe,
besten Dank für Deine hilfreiche Unterstützung! Ich habe es bereits versucht und finde in meinem SQL Mgmt Studio auch den Verbindungsserver vor. Jedoch erhalte ich - wenn ich unter \Serverobjekte\Verbindungsserver\ORACLE-linkedSERVER\Kataloge\default\Tabellen... den Fehler: Fehler beim Abrufen.... der OLE DB Anbieter "OraOLEDB' wurde nicht registriert. (Fehler 7403).
Mein SQL Verbindungsaufruf sieht so aus:
EXEC sp_addlinkedserver 'ORACLE LinkedServer', 'Oracle', 'MSDAORA', 'DB'
EXEC sp_addlinkedsrvlogin 'ORACLE LinkedServer', 'FALSE',NULL, 'USER', 'PW'EXEC sp_linkedservers
EXEC sp_helpserverselect * from sysservers
Hast Du dazu eine Lösung?
Vielen Dank und auch Dir ein gutes, Neues Jahr 2011
Gruß Jürgen
-
Hallo Jürgen, versuch mal folgendes:
EXEC master.dbo.sp_addlinkedserver @server = N'Link_Ora', @srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'MeinOracle.Domain.DE' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Link_Ora',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Link_Ora',@useself=N'False',@locallogin=N'SQL_User',@rmtuser=N'ORAUSER',@rmtpassword='########'
Hierbei mußt Du natürlich die entsprechenden Werte durch die für Dich geeigneten ersetzen. Wir haben den Treiber für 10g R2 auf dem Server (!) installiert.
Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org/blogs/cmu -
Hallo Christoph,
besten Dank für die Info. Ich habe Deinen Vorschlag mit verschiedenen Parametern bzw. Kombinationen ausprobiert, leider ohne Erfolg. Ich gehe davon aus, das der ORACLE Treiber auf dem Quellsystem nicht korrekt installiert wurde, da ich z. B. auch nicht SQL+ aufrufen kann. Daher werde ich in den nächsten Tagen das System nochmals neu aufsetzen und einen erneuten Versuch starten. Sobald ich den Fehler gefunden habe bzw. es funktioniert, melde ich mich wieder mit der Ursache.
Vielen Dank nochmals für Eure wertvolle Hilfe,
Gruß Jürgen
-
Hallo Uwe, hallo Christoph,
besten Dank nochmals für Eure Hilfe. In der Zwischenzeit konnte ich einen Verbindungsserver auf dem System einrichten - die JAVA Komponente war vorher nicht korrekt installiert, sodass der Oracle Client nicht richtig funktionierte.
Schönen Gruß,
Jürgen
- Als Antwort markiert Andrei Talmaciu Freitag, 28. Januar 2011 11:47