SQL Server 2000 を使用して、単一の Oracle リンク サーバーに対して分散トランザクションを実行しようとしています。次のスクリプトを思い付きました。
BEGIN DISTRIBUTED TRANSACTION;
SET XACT_ABORT off;
GO
SELECT MAX(DEPTNO)+1,
FROM [WSF08_CONTA_ORADATA_II]..[SCOTT].DEPT
SET XACT_ABORT on;
GO
COMMIT TRANSACTION;
スクリプトが実行されるとすぐに、次のエラーが発生し、続いて SQL Management studio がフリーズして接続を閉じます。
メッセージ 7399、レベル 16、状態 1、行 3
リンク サーバー "WSF08_CONTA_ORADATA_II" の OLE DB プロバイダー "OraOLEDB.Oracle" がエラーを報告しました。プロバイダーは、予期しない壊滅的な障害を報告しました。
メッセージ 7303、レベル 16、状態 1、行 3 リンク サーバー "WSF08_CONTA_ORADATA_II" の OLE DB プロバイダー "OraOLEDB.Oracle" のデータ ソース オブジェクトを初期化できません。
何が起こっている?
*PD:
- 通常のクエリを使用してデータを作成/更新/削除できますが、
DISTRIBUTED TRANSACTION
句が含まれているとエラーが表示されます。 - 私たちは最近、サーバーを Oracle 10g にアップグレードまたはリンクしました。