none
Fehlermeldung bei Import Oracle Tabellen per ODBC Treiber RRS feed

  • 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

    Donnerstag, 30. Dezember 2010 17:01

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

    Donnerstag, 27. Januar 2011 16:27

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.aspx

    Die 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).aspx

    Sehr 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.aspx

    Einen guten Rutsch in das neue Jahr...


    Uwe Ricken
    Microsoft Certified Database Administrator SQL Server 2005
    db Berater GmbH
    http://www-db-berater.de
    Freitag, 31. Dezember 2010 05:49
  • 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_helpserver

    select * from sysservers

    Hast Du dazu eine Lösung?

     

    Vielen Dank und auch Dir ein gutes, Neues Jahr 2011

    Gruß Jürgen

     

    Sonntag, 2. Januar 2011 14:14
  • 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

    Montag, 3. Januar 2011 07:28
    Beantworter
  • 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

    Donnerstag, 6. Januar 2011 14:36
  • 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

    Donnerstag, 27. Januar 2011 16:27