Announcement

Collapse
No announcement yet.

Fehler beim Zugriff auf eine Oracle DB mit MS-ETL-Prozessen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler beim Zugriff auf eine Oracle DB mit MS-ETL-Prozessen

    Hallo Forum,

    habe da ein Problem.

    Ich habe auf meinem SQL-Server diesen Treiber von Oracle installiert:

    ODAC 11.2 Release 3 (11.2.0.2.1) with Oracle Developer Tools for Visual Studio

    Wenn ich im ETL-Prozess dann die Verbindung aufbaue und teste bekomme ich ein OK.

    Lasse ich mir in einem Paket des ETL's eine Datenvorschau anzeigen bekomme ich auch Daten angezeigt.

    Wenn ich allerdings die Pakte ausführe bekomme ich bei jedem Paket einen Fehler:

    Fehler: System.InvalidOperationException: Der 'OraOLEDB.Oracle.1'-Provider ist nicht auf dem lokalen Computer registriert.
    bei System.Data.OleDb.OleDbServicesWrapper.GetDataSour ce(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
    bei System.Data.OleDb.OleDbConnectionInternal..ctor(Ol eDbConnectionString constr, OleDbConnection connection)
    bei System.Data.OleDb.OleDbConnectionFactory.CreateCon nection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
    bei System.Data.ProviderBase.DbConnectionFactory.Creat eNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
    bei System.Data.ProviderBase.DbConnectionFactory.GetCo nnection(DbConnection owningConnection)
    bei System.Data.ProviderBase.DbConnectionClosed.OpenCo nnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
    bei System.Data.OleDb.OleDbConnection.Open()
    bei Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetM anagedConnection(String assemblyQualifiedName, String connStr, Object transaction)
    bei Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnec tionManager100.AcquireConnection(Object pTransaction)
    bei Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceA dapter.AcquireConnections(Object transaction)
    bei Microsoft.SqlServer.Dts.Pipeline.ManagedComponentH ost.HostAcquireConnections(IDTSManagedComponentWra pper100 wrapper, Object transaction)


    Hat jemand einen Plan was ich falsch gemacht habe? Oder was ich noch konfigurieren muss?

    Bin für jeden Rat dankbar.

    Gruss

    Michael
    http://www.mschnuerer.de

  • #2
    So weitere Informationen zu dem Fehler:

    Habe jetzt in der Datenverbindung einen Anderen Provider eingetragen.

    Der alte Provider war .Net-Anbieter für OleDB\Oracle Provider for Ole DB

    Der neue Provider ist .Net-Anbieter für OleDb\Microsoft Ole DB Provider for Oracle

    Dieser Provider verursacht folgenden Fehler:
    Fehler: System.InvalidOperationException: Der 'MSDAORA.1'-Provider ist nicht auf dem lokalen Computer registriert.
    bei System.Data.OleDb.OleDbServicesWrapper.GetDataSour ce(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
    bei System.Data.OleDb.OleDbConnectionInternal..ctor(Ol eDbConnectionString constr, OleDbConnection connection)
    bei System.Data.OleDb.OleDbConnectionFactory.CreateCon nection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
    bei System.Data.ProviderBase.DbConnectionFactory.Creat eNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
    bei System.Data.ProviderBase.DbConnectionFactory.GetCo nnection(DbConnection owningConnection)
    bei System.Data.ProviderBase.DbConnectionClosed.OpenCo nnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
    bei System.Data.OleDb.OleDbConnection.Open()
    bei Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetM anagedConnection(String assemblyQualifiedName, String connStr, Object transaction)
    bei Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnec tionManager100.AcquireConnection(Object pTransaction)
    bei Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceA dapter.AcquireConnections(Object transaction)
    bei Microsoft.SqlServer.Dts.Pipeline.ManagedComponentH ost.HostAcquireConnections(IDTSManagedComponentWra pper100 wrapper, Object transaction)


    Wenn ich neue Informationen zu den Fehlern habe werde ich diese auch wieder posten.

    Falls Ihr noch Infos braucht die ich noch nicht geschrieben habe bitte stellt mir die Fragen ich werde Sie asap beantworten. Danke

    Gruss

    Michael
    http://www.mschnuerer.de

    Comment


    • #3
      Originally posted by MiSchn1980 View Post
      Der neue Provider ist .Net-Anbieter für OleDb\Microsoft Ole DB Provider for Oracle
      Diese Provider von MS ist abgekündigt. Es wird keinerlei SW-Anpassungen oder ähnliches hier geben.

      Aber das Problem das der Provider deutet darauf hin das es Probleme gibt den Provider zu finden. Ich glaube mich zu erinnern das es Probleme gibt wenn man einen 64-Bit MS SQL-Server hat aber der OLE DB-Provider nicht als 64-Bit Assembly zur verfügung steht.

      Ich verschiebe es mal zum MS SQL-Server. Passt dort eher hin.

      Comment


      • #4
        Kann es sein, dass du verschiedene Version vom "Oracle Provider for Ole DB" installiert hast? Das geht nicht, du darfst nur eine Version installiert haben.

        Gruss

        Comment


        • #5
          Hi Leute,

          also ich habe den Treiber nur einmal auf dem Server installiert.

          Der SQL ist in 64-bit installiert.

          Laut der Install-Anleitung von Oracle sind die 32 und 64-bit Treiber in dem Paket.

          Was auch verrückt ist, ist dass wenn ich im ETL-Prozess mir die Vorschau von der Oracle-Datenquelle anzeigen lasse, bekomme ich die 200 Datensätze angezeigt. Die Verbindung und connection sollten also soweit in Ordnung sein.
          Der Fehler tritt nur auf wenn ich den ETL-Prozess komplett starte. Dann bekomme nicht einen Datensatz.

          Gruss

          Michael
          http://www.mschnuerer.de

          Comment


          • #6
            Hey Leute,

            das Problem ist gelöst! die Lösung ist allerdings etwas peinlich!

            Im ETL-Projekt muss in den Projekteigenschaften das benutzen von 64bit untersagt werden.

            Der Punkt heisst RUN64BitRuntime. Hier muss False eingetragen werden. Dann läuft der Import durch.

            Gruss

            Michael
            http://www.mschnuerer.de

            Comment


            • #7
              Originally posted by MiSchn1980 View Post
              Laut der Install-Anleitung von Oracle sind die 32 und 64-bit Treiber in dem Paket.

              ...

              Im ETL-Projekt muss in den Projekteigenschaften das benutzen von 64bit untersagt werden.
              Also doch keine 32-64-Bit in einem. Ich habe eher die Erfahrung das Oracle es nicht schaft beide Bitbreiten gleichzeitig installierbar zu haben (Jedenfalls was den nativen NET-Client anbelangt).

              Comment


              • #8
                Der Witz ist wirklich, dass in den Installations-Anleitungen 32 und 64 bit steht. Aber installiert werden nur die 23-bit.

                Gruss

                Michael
                http://www.mschnuerer.de

                Comment

                Working...
                X