f1r3storm Geschrieben 2. November 2010 Teilen Geschrieben 2. November 2010 Hallo Kollegen! zurzeit versuche ich einen SQL Server mit einer Oracle Datenbank kommunizieren zu lassen. So sieht meine Konstellation aus: - Windows 2003 R2 Server mit Oracle 10.2.0.4.0 Datenbank (alles 32Bit) - Windows 2008 R2 Server mit SQL Server 2008 R2 und Oracle Client 11.2 (alles 64Bit) Das habe ich gemacht: Ich bin diesen (How to set up and troubleshoot a linked server to an Oracle database in SQL Server) Microsoft Artikel durchgegangen, habe natürlich die Regestry Anpassungen dem 11er Client entsprechend getätigt. Auf dem SQL Server ist die tnsnames.ora da und „konfiguriert“. Über das Microsoft SQL Management Studio habe ich einen Verbindungsserver erstellt, in diesem ich wiederum den in der tnsnames.ora angegebenen Connect Identifier angebe. Soweit so gut, ich kann nun vom SQL Server aus, mit dem SQL Editor einen Select, Update oder Insert Befehl an die Oracle DB schicken (erfolgreich!). Führe ich nun einen identischen Befehl aus einem Trigger oder einer Prozedur aus, erhalte ich folgende Fehlermeldung: ---- Der OLE DB-Anbieter 'OraOLEDB.Oracle' für den Verbindungsserver 'CONNECT_ORACLE' hat die Meldung 'Die neue Transaktion kann im angegebenen Transaktionskoordinator nicht eingetragen werden. ' zurückgeben. Der Vorgang konnte nicht ausgeführt werden, da der OLE DB-Anbieter 'OraOLEDB.Oracle' für den Verbindungsserver 'CONNECT_ORACLE' keine verteilte Transaktion beginnen konnte. --- Hat jemand damit Erfahrungen? Kann jemand helfen? Vielen Dank schon mal! Gruß f1r3storm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 2. November 2010 Teilen Geschrieben 2. November 2010 Hallo, kannst Du mal das SQL aus dem Trigger oder der Prozedur posten? Gruß, Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
f1r3storm Geschrieben 2. November 2010 Autor Teilen Geschrieben 2. November 2010 Hallo Thomas, z.B.: update CONNECT_ORACLE..IID.TBTR_AUFTRAG_1 set AUFTRAG_ID = '1025' where AUFTRAGNR = '9‘ Danke Dir! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
.NETter Geschrieben 2. November 2010 Teilen Geschrieben 2. November 2010 Hallo! Vielleicht hilft hier OpenQuery. Die Abfrage ist hier dann einfacher Text (also PL/SQL) der direkt am Oracle Server ausgeführt wird. Ich hatte diese Problematik noch nicht aber hoffe, dass es Dir weiter hilft. Hier mal ein Link: OpenQuery Gruß, Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
f1r3storm Geschrieben 4. November 2010 Autor Teilen Geschrieben 4. November 2010 Hallo Thomas, Danke erst mal für deine Mühe! Leider hat OpenQuery keine Veränderung im Verhalten erbracht. Habe aber über ein MS Forum die Lösung erhalten. Das Problem war, ich hatte den Oracle 11.2 Client installiert (Installationsart: Administrator), dieser installiert allerdings nicht alles was man für diese Verbindungsart benötigt mit! Zusätzlich muss man die Client Installation "Benutzerdefiniert" durchführen. In dieser wählt man "Oracle Service for Microsoft Transaction Server" aus. Dieser installiert einen neuen Dienst "OracleMTSRecoveryService". In einem Script oder Trigger muss man dann nur noch "set xact on" davor schreiben.... dann geht alles!!! Vielen Dank nochmal! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.