- PR -

SQLServer2000からOracle7.3へのリンクサーバーに失敗します

投稿者投稿内容
island_town
ベテラン
会議室デビュー日: 2007/05/08
投稿数: 77
投稿日時: 2008-12-09 15:19
お世話になってます。
SQLServer2000 Personal Edition SP4 からOracle7.3へのリンクサーバーを張ろうと
Oracle Clientを入れて、以下のSQLを流したのですが

コード:

EXEC sp_addlinkedserver @server ='SMILE', @srvproduct ='Oracle', @provider = 'MSDAORA', @datasrc = 'SMILE'
EXEC sp_addlinkedsrvlogin 'SMILE', 'FALSE', NULL, 'ユーザー名', 'パスワード'


Enterprise Managerでリンクサーバーのテーブル一覧を見ようとすると、エラーになります。
エラー内容:
OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005:

一応いろいろ調べてみてやってみましたが解決しません。
http://support.microsoft.com/kb/280106/ja

レジストリのMTxOCIの値を記述どおりに変えてみたりもしましたがダメでした。
変えた後サービスの再起動とかいるのでしょうか?どのサービスなのでしょうか?

MDACやSQL*Netのバージョンがどうとか書いてありましたが
MDACやSQL*Netのバージョンはどうやって調べれば良いのでしょうか?

TNSNAMES.ORAのネットサービス名の記述は
SMILE.world =
となっているのですが、SQLの記述は'SMILE'で良いのでしょうか?

よろしくお願いします。


[ メッセージ編集済み 編集者: island_town 編集日時 2008-12-09 16:05 ]
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-12-09 16:12
ご参考までに。

MDAC のバージョンを確認する方法

よく分からない分野ですが(ぉい、
@datasrc パラメータを使用していますが、DSNは作成済み(接続確認含む)なんですよね?

作成した時のドライバは「Microsoft ODBC Driver for Oracle」ですか?

>SQLの記述は'SMILE'で良いのでしょうか?

この意味がよく分かりませんでした。
ほったて
ベテラン
会議室デビュー日: 2007/11/10
投稿数: 68
投稿日時: 2008-12-09 16:17
引用:

island_townさんの書き込み (2008-12-09 15:19) より:
お世話になってます。
SQLServer2000 Personal Edition SP4 からOracle7.3へのリンクサーバーを張ろうと
Oracle Clientを入れて、以下のSQLを流したのですが

コード:
EXEC sp_addlinkedserver @server ='SMILE', @srvproduct ='Oracle', @provider = 'MSDAORA', @datasrc =  'SMILE'
EXEC sp_addlinkedsrvlogin 'SMILE', 'FALSE', NULL, 'ユーザー名', 'パスワード'


Enterprise Managerでリンクサーバーのテーブル一覧を見ようとすると、エラーになります。
エラー内容:
OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005:

一応いろいろ調べてみてやってみましたが解決しません。
http://support.microsoft.com/kb/280106/ja

レジストリのMTxOCIの値を記述どおりに変えてみたりもしましたがダメでした。
変えた後サービスの再起動とかいるのでしょうか?どのサービスなのでしょうか?

MDACやSQL*Netのバージョンがどうとか書いてありましたが
MDACやSQL*Netのバージョンはどうやって調べれば良いのでしょうか?

TNSNAMES.ORAのネットサービス名の記述は
SMILE.world =
となっているのですが、SQLの記述は'SMILE'で良いのでしょうか?

よろしくお願いします。


[ メッセージ編集済み 編集者: island_town 編集日時 2008-12-09 16:05 ]



インストールしたclientのバージョンは?
あと接続文字列はSMILE.worldと定義したのならSMILE.worldと指定すればいいのでは。
island_town
ベテラン
会議室デビュー日: 2007/05/08
投稿数: 77
投稿日時: 2008-12-09 16:38
ありがとうございます。
早速MDACのバージョンを調べてみたところ、2.8 SP1でしたので
MSDNに従い再度レジストリを変更しましたがダメです。

>@datasrc パラメータを使用していますが、DSNは作成済み(接続確認含む)なんですよね?
SQL*Plusではちゃんと接続できます。

>作成した時のドライバは「Microsoft ODBC Driver for Oracle」ですか?
Microsoft OLE DB Provider for Oracle になってます。

>SQLの記述は'SMILE'で良いのでしょうか?
>この意味がよく分かりませんでした。

EXEC sp_addlinkedserver @server ='SMILE', @srvproduct ='Oracle', @provider = 'MSDAORA', @datasrc = 'SMILE'
EXEC sp_addlinkedsrvlogin 'SMILE', 'FALSE', NULL, 'ユーザー名', 'パスワード'
の@datasrc = 'SMILE'のことです。

>インストールしたclientのバージョンは?
CDはOracle7.3.4となってます。

>あと接続文字列はSMILE.worldと定義したのならSMILE.worldと指定すればいいのでは。
これらをやってみてSQLServerを再起動してみたのですが
結果は変わりません(T_T)

困りました。。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-12-09 17:01
エラーコードからググって、DB使用時のエラーを見て、DSN関係が原因かな、と想像しました。

あとは、レジストリに対するアクセス権とかですかねぇ
island_town
ベテラン
会議室デビュー日: 2007/05/08
投稿数: 77
投稿日時: 2008-12-09 17:11
え〜と、ODBCではなくOLE DBでNativeに接続するので
TNSNAMES.ORAに記述されていれば、データソースを作成する必要がないと思うのですが(多分。。
どこから作成するDSNのことでしょうか?

レジストリにアクセス権があるのですか?
初めて知りましたが、特に何も設定しておりません。


[ メッセージ編集済み 編集者: island_town 編集日時 2008-12-09 17:37 ]
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-12-09 17:41
書き方が悪かったですね。

最初の投稿を見て、エラーコードでググって、DSN関係の設定が原因の場合が多かったので「DSN関係が原因かな」と想像して、最初の回答をしたんですよ、ということ。

深い意味はありません。

「0x80004005 レジストリ」でググった結果
http://www.google.co.jp/search?hl=ja&q=0x80004005+%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA&btnG=%E6%A4%9C%E7%B4%A2&lr=
の先頭。

私は不要みたいなので消えます。お力になれず申し訳ない。
island_town
ベテラン
会議室デビュー日: 2007/05/08
投稿数: 77
投稿日時: 2008-12-09 17:48
私も書き方が悪くてすみません。
ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)