ActivePerl5.8.7とOracle7.3.4を連動させたスクリプトを組もうとしています。DBD-ORACLEモジュールを使って

my $dbh = DBI->connect(’DBI:Oracle:dsn’,’user’,’pass’); としたところ、
ORA-03134: このバージョンのサーバーへの接続は、サポートされていません。 (DBD ERROR: OCISessionBegin)
というエラーになりました。
Oracle for WindowsのSQLPLUS3.3や32-Bit ODBC TEST Ver2.5.3クライアント単体ではODBC接続できるのですがスクリプトを
実行すると上記エラーになります。どのようにすると、このエラーを解決できるのでしょうか?

DBD-ORACLE.pmの説明書を読むとORACLE7も対応しているという文面がありましたので、接続できないことはないと
考えております。Oracleのバージョンをあげたいのですが、そうもいかない状況です。
ちょっと難しい質問ですが、何かわかる方、アドバイスいただける方がいらっしゃいましたら、回答をお願いします。

よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:takumase No.1

回答回数9ベストアンサー獲得回数0

ポイント130pt

http://www.oracle.co.jp/products/system/matrix_db.html

Oracleシステム製品データベース対応一覧表

エラーメッセージのとおりです。

とりあえずこのURLが参考になるかと思います。

(DBDはフリーソフトになるのでoracle社としては保障していないみたいです。)

ODBCは接続可能ですね。

無理かとは思いますが、ORACLEのサポートも切れていることも考えるとバージョンアップしかないと思われます。

id:dtm_master

DBD:;ODBCを使うことにしました。

なんか、腑に落ちないというか、どこかで誰かはうまく使いこなしているような気がしてならないです。DBD::ORACLEの説明書には7対応って書いてあるし。DBD::ORACLEのようなフリーソフトを自分で作れないし、無能だからいけないんだとは思いますが、ちょっと寂しいですね。

とりあえず、ここで質問して駄目だったし、一般的にも難しいお話だということがわかりました。あきらめる決心がつきました。ありがとうございました。

2005/08/07 13:04:16
id:taro2229 No.2

回答回数5ベストアンサー獲得回数0

ポイント300pt

OCISessionBeginというのはOCI8の関数です。(つまりOracle8以降にできた関数)Oracle8以降のクライアントをいれるか、oxxxxxで始まるOCI7の関数を使って

アクセスしないといけません。

id:dtm_master

一回、あきらめかけたけど…

なるほど。ORACLE8以降にも接続できるクライアントを用意するといいのですね。(DBD::ORACLEをいじって、OCI7の関数で呼び出すように改造するのは自分のスキルではできなさそうな気がしますし…)

いま使っているクライアントは5〜10年前に購入したもので、データベースもバージョンアップされていないし、使えるものを使って、ちょっと便利にしようと頑張っているところでして…

ちょっとお金がかかる方法かと思いますし、

簡単には購入することができないので、クライアントを手にする機会があれば試してみたいと思います。どうもありがとうございました。

いまだにORACLE7.3使っているっていうと、その道の人は「懐かしいねぇ」といいますね。

ともかく

当面はDBD::ODBCで運用したいと思います。

2005/08/07 13:27:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません