Zum Inhalt springen

SQL zu Oracle via OLE DB Provider


f1r3storm

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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