Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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!

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...