みんなの【マイ・ベスト積読2024】を教えてください。

お世話になります。

[SQL Server 2005]から[Oracle 10g]に対し、リンクサーバーを設定いたしました。

このリンクサーバー越しにテーブルを参照した所、参照できるテーブルとできないテーブルが、
起こってしまいました。

参照不可なテーブルを参照しようとしますと、
「メッセージ 7442、 レベル 16、状態 1、行 1
リンク サーバー "hoge" の OLE DB プロバイダ "MSDAORA" から返されたテーブル ""AAA"."BBB"" のインデックス定義が無効です。」
が、出てしまいます。

尚、このテーブルには主キーが設定されておりません。ユニークキーのみ設定されております。

[Oracle 10g]側のテーブル定義を変更することができませんので、何とか[SQL Server 2005]側での
対応方法をご存知の方は、ご教授頂けませんでしょうか。

※主キーの張られておりますテーブルに対しては問題なく参照が行えます。

ご回答に際しまして補足が必要でしたら、お申し付け下さい。

よろしくお願いいたします。

A 回答 (1件)

もしまだ解決していないなら。



手持ちの環境(SQL Server 2008/Oracle11g)では主キーがなくても同じ事象は確認できなかったので、
主キーがない=リンクサーバで利用できない、ではないかもしれません。

ただ、いずれにしても、Oracle側を変更できない以上、SQL Server側で対処できる範囲は限られます。
・Microsoftのではなく、OracleのODBCドライバを使っていることを確認する
 http://www.oracle.com/technology/global/jp/softw …
・OPENQUERYを使ってみる
 SELECT * FROM OPENQUERY(リンクサーバ名, 'OracleのSELECT文')
・どうしてもダメなら、何か経由させてみる
 例えばOracleのテーブルをAccessにリンクして、そのMDBに対してリンクサーバを設定してみるなど
 Accessの場合、主キーがなくても主キーを指定してリンクできるので、何か違いが出るかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報