none
Oracle zugriff RRS feed

  • Frage

  • Hallo!

    Ich habe ein SSIS Projekt, in dem ich über einen Verbindungsmanager einen Zugriff auf eine Oracle DB einrichten möchte.

    Auf dem PC habe ich den Oracle-Client installiert.

    Beim Erstellen/Einrichten des Verbindungsmanagers funktioniert der Testzugriff erfolgreich:

    Wenn ich den Verbindungsmanager jedoch bearbeiten oder benutzen möchte, wird eine Fehlermeldung angezeigt:

    Woran könnte das liegen? Was könnte ich ändern???

    Mittwoch, 24. Oktober 2018 13:03

Antworten

  • Kleine Anmerkung: Besser nicht (nie) den .NET Provider in SSIS verwenden, sondern besser (immer) den OleDB Provider.

    SSIS ist in Unmanaged Code geschrieben, während .NET Managed Code ist; verwendest Du den .NET, muss SSIS ständig im Kontext wechseln und das geht auf die Performanz.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 25. Oktober 2018 05:41

Alle Antworten

  • Hallo perlfred,
    welche Version ist die Oracle Datenbank auf die du Zugreifen möchtest. Verwendest du den OracleProvider aus dem .net Framework? Der ist nämlich Uralt und wird schon seit der Version .net 2.0 nicht mehr gepflegt.

    Neuere Versionen gibt es nur von Oracle selbst. Bitte den neusten runterladen, installieren und noch einmal probieren.


    Viele Grüße Holger M. Rößler



    Mittwoch, 24. Oktober 2018 13:18
  • Hallo Holger!

    Ich verwende den Oracle-Client 12.2.01 (von Oracle) der auf einen Oracle-DB Server 11g zugreift.

    Auf einem anderen Rechner, mit dem gleichem Oracle-Client funktioniert der Zugriff.

    Oracle Database 11g Release 11.2.0.4.0 - 64bit Production


    • Bearbeitet perlfred Donnerstag, 25. Oktober 2018 12:36 Konkretisierung
    Mittwoch, 24. Oktober 2018 14:01
  • Hallo perlfred,
    gibt es einen Eintrag im Windows Eventlog?

    Viele Grüße Holger M. Rößler

    Mittwoch, 24. Oktober 2018 14:09
  • Hallo Perlfred,

    Du musst den ORACLE-Client auf dem SQL Server installieren (resp. auf dem Server, von dem Dein SSIS-Paket ausgeführt wird!)

    https://www.oracle.com/technetwork/database/windows/index-089115.html

    Das der ORACLE-Client auf Deinem Rechner funktioniert, zeigt ja, dass es der richtige Treiber zu sein scheint. Nun muss auch der SQL Server Agent das SSIS-Paket ausführen (und das tut er gewöhnlich vom SQL Server aus) :)


    Uwe Ricken (Blog | Twitter)
    Microsoft Certiied Master - SQL Server 2008
    Microsoft Certified Solution Master - CHARTER Data Platform
    Microsoft Certified Solution Expert - Data Platform
    db Berater GmbH
    Microsoft SQL Server Blog (german only)

    Mittwoch, 24. Oktober 2018 16:59
  • Kleine Anmerkung: Besser nicht (nie) den .NET Provider in SSIS verwenden, sondern besser (immer) den OleDB Provider.

    SSIS ist in Unmanaged Code geschrieben, während .NET Managed Code ist; verwendest Du den .NET, muss SSIS ständig im Kontext wechseln und das geht auf die Performanz.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 25. Oktober 2018 05:41
  • Hallo Uwe!

    Damit hast Du erst einmal vollkommen Recht. Der Ausgangspunkt meiner Anfrage resultiert auch aus dieser Erkenntnis. Das Installieren des Oracle-Client (auf dem ausführenden SQL-Server) allein reicht jedoch nicht aus, damit das dtsx-Paket (vom Assistent) ausgeführt werden kann. Wenn in den Verbindungseinstellungen Passwörter hinterlegt sind, werden diese (per Default) mit dem Benutzerkonto (des Paketerstellers!) verschlüsselt. Da in der Regel das Benutzerkonto des Erstellers und das Benutzerkonto des ausführenden Agenten nicht übereinstimmen, wird ein Fehler erzeugt:

    Beschreibung: Fehler beim Entschlüsseln des geschützten XML-Knotens 'DTS:Password' (Fehlercode: 0x8009000B 'Schlüssel ist im angegebenen Status nicht gültig.'). Möglicherweise verfügen Sie nicht über die Zugriffsrechte für diese Informationen. Dieser Fehler tritt bei einem kryptografischen Fehler auf. Überprüfen Sie ob der richtige Schlüssel verfügbar ist.

    Um dies Alles zu testen, habe ich mich auf meinem Rechner (Anmerkung: Auf meinem Rechner/unter meinem Benutzer-Account habe ich das SSIS-Paket erstellt und es ist komplett lauffähig) mit dem Benutzerkonto des SQL-Server Agenten angemeldet, den Oracle-Client (erneut) installiert und das SSIS-Paket im BI-Studio geöffnet. Nun wollte ich die Oracle-Verbindungseinstellungen prüfen ... mit dem obigen Ergebnis (Test-Verbindungsaufbau funktioniert [erneute Eingabe des Passwortes] sobald ich aber ein weiteres Mal auf die Verbindungseinstellungen doppelklicke [im Designer!!!] -> DbProviderFactory-Klasse konnte nicht erstellt werden). Also schon im Designer funktioniert die Oracle-Verbindung nicht korrekt, nicht erst beim ausführen des SSIS-Paketes durch den Assistenten.

    Gibt es dafür eine Erklärung???

    Donnerstag, 25. Oktober 2018 10:24
  • Hallo Olaf!

    Danke für deinen Hinweis!

    Ich werde es jetzt auch mal mit dem Oracle OLE DB Provider versuchen.

    Donnerstag, 25. Oktober 2018 12:09
  • Wenn in den Verbindungseinstellungen Passwörter hinterlegt sind, werden diese (per Default) mit dem Benutzerkonto (des Paketerstellers!) verschlüsselt

    Ja, das ist der Default, aber den kann man ändern, z.B. das mit einem Passwort verschlüsselt wird, das Du dann bei Anlage des Agent Jobs einfach eingibst.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 25. Oktober 2018 13:48
  • Hallo Olaf!

    Mit dem OLE-Provider kann ich erst einmal eine Verbindung mit der Oracle DB herstellen !!!

    Aber

    bei der Hälfte der Sichten auf die ich zugreifen möchte bekomme ich folgende Fehlermeldung:

    die View ist aber auf jedem Fall in der DB:

    Woran könnte das denn liegen???


    • Bearbeitet perlfred Freitag, 26. Oktober 2018 08:25
    Freitag, 26. Oktober 2018 08:23
  • Hallo Olaf!

    Wie gelangt man denn zu dieser Ansicht?

    Bei mir kommen bei den Verbindungseigenschaften nur folgende Angaben:

    Freitag, 26. Oktober 2018 08:42
  • Hallo Olaf!

    Die Frage (Eigenschaft) hat sich erledigt.

    Ich habe noch mit BI 2008 gearbeitet. In der BI 2012 ist die Eigenschaft verfügbar.

    Die übrigen Fehler sind aber unverändert auch in BI 2012.

    Freitag, 26. Oktober 2018 10:03
  • ProtectionLevel ist eine Einstellung auf Paketebene, nicht am Verbindungsmanager.

    Der Rest der Informationen sind verwirrend. Im Verbindungsmanager steht"WodisDB2_WODIS" als Datenbank/Servername, im Screenshot mit den Views steht "WODIS-PROD", ein anderer Name.

    In der Fehlermeldung steht "WODIS.BGL_VIEW...", wobei WODIS dann das Schema ist; gibt es die View in dem Schema und hat der Login Rechte auf dem Schema? Im Screenshot mi den Views sieht man nichts von einem Schema.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Freitag, 26. Oktober 2018 10:47
  • Hallo Olaf!

    Wenn man die Views noch ein wenig umstellt (Datumsformat), funktionieren die Abfragen mit dem OLE Provider perfekt. Dies scheint der Oracle .Net Provider im Hintergrund selbständig anzupassen.

    Vielen Dank für deine Hilfe!!!

    Fred.

    Aus folgender Fehlermeldung erkannt:


    • Bearbeitet perlfred Dienstag, 30. Oktober 2018 07:43
    Dienstag, 30. Oktober 2018 07:40