QA@IT

【ODBC】win2008srv R2でのoracle odbcについて

7674 PV

いつも参考にしております。

現在、asp + accessのシステムをwin2000svr(32bit)で動かしています。
なお、accessのmdbには別サーバで動作しているoracle8iのテーブルをリンクしています。

今度、サーバをwin2000svrからwin2008svr R2(64bit)に移すことになりました。

環境移行後に動作確認したところ、mdbのoracle8iのリンクテーブルに対してSQLのSELECT文を発行したところエラーが発生しました。

<SELECT文発行箇所のソース>
 Set oCn = Server.CreateObject("ADODB.Connection")
 oCn.Open ConMdb,"",""   ' ← 「ConMdb」はODBCで指定した接続データソース名
 Set oRs = Server.CreateObject("ADODB.Recordset")
 sSql = " SELECT * FROM table;"   ' ← 「table」はoracle8iのリンクテーブル
 oRs.Open sSql,oCn,1,1   ' ← ココでエラー!
<エラー内容>
 Microsoft OLE DB Provider for ODBC Drivers エラー '80040e21'
 ODBC ドライバーは要求されたプロパティをサポートしていません。
 /xxx/xxx/xxx.asp, 行 123

移行前の環境ではoracleとの接続は「Microsoft ODBC for Oracle」を使用してODBC接続をしていたので、今回のwin2008svr R2でも同様にODBC接続をしようと試みました。

すると、ODBCデータソースアドミニストレーターで「Microsoft ODBC for Oracle」を指定すると、
以下のエラーが発生しました。
<エラー内容>
 Oracle(tm)クライアントとネットワークコンポーネントが見つかりません。
 これらのコンポーネントはOracle Corporationから提供され、Oracle Version 7.3(またはそれ以降)のクライアントソフトウェアの一部としてインストールされます。

前置きが長くなりましたが、ここから質問です。
①win2008svr R2はoracleが未実装ですが、ODBC接続する際はoracleをインストールする必要があるのでしょうか。
②win2008svr R2でmdbのoracle8iのリンクテーブルに、費用をかけずに問題なくSELECT文を発行できる実現方法をご存じのかた、申し訳ありませんが、ご教授いただけないでしょうか。

以上です。

  • mocha_rx8様がご教授いただいた方法で無事に解決しました。
    本当にありがとうございました。
    -
  • お疲れさまでした。
    お役にたてて光栄です(^-^)
    -

回答

「Microsoft ODBC for Oracle」ドライバは単体では動作できず、
そのWindowsにOracle Clientをインストールしておく必要があります。

そして残念ながらOracle 8i Client は Windows Server 2008 R2 をサポートしていません。

保証はできませんが、リンクテーブルを参照するくらいでしたら
11gのクライアントでも 8iサーバに接続できるのではないでしょうか。
Oracle Clientは公式サイトから無償配布されています。
(Instant Clientでもかまいません)

編集 履歴 (0)
  • mocha_rx8 様、早速のご回答ありがとうございます。

    Microsoft ODBC for OracleはOracle Clientがないと動作しないのは残念です。
    しかしながら、11gやInstant Clientで動作するかもしれないという情報は、八方塞中の私にとって大変ありがたいです。
    早速明日試してみます。

    結果はおってご連絡致します。

    以上です。
    -

旧サーバから ORACLE_HOME¥network¥admin¥tnsnames.ora をコピーしてきましょう。

もしくは、ODBC設定のTNSサービス名のところを 192.168.0.1:1521/HOGE というようにIPアドレス(:ポート)/TNS名にするとtnsnames.ora無しでもつながると思います。

編集 履歴 (0)
  • mocha_rx8様、ありがとうございます。

    やはりtnsnames.oraが必要なのですね。
    休み明けに再度リトライしてみます。
    -

本日、mocha_rx8様にご教授いただきました方法で試してみました。
結果、見事にMicrosoft odbc for oracleの設定が行えました。

ただ、接続確認するとodbc接続失敗のエラーが発生しました。
今回、oracle 11gのランタイムをインストールしたのですが、tnsnames.oraの設定が必要なのでしょうか?
必要な場合、11gではどのように設定すればよろしいでしょうか?
度重なる質問で大変申し訳ありませんが、ご教授いただければ幸いです。

以上です。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。