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のバージョンをあげたいのですが、そうもいかない状況です。
ちょっと難しい質問ですが、何かわかる方、アドバイスいただける方がいらっしゃいましたら、回答をお願いします。
よろしくお願いします。
http://www.oracle.co.jp/products/system/matrix_db.html
Oracleシステム製品データベース対応一覧表
エラーメッセージのとおりです。
とりあえずこのURLが参考になるかと思います。
(DBDはフリーソフトになるのでoracle社としては保障していないみたいです。)
ODBCは接続可能ですね。
無理かとは思いますが、ORACLEのサポートも切れていることも考えるとバージョンアップしかないと思われます。
OCISessionBeginというのはOCI8の関数です。(つまりOracle8以降にできた関数)Oracle8以降のクライアントをいれるか、oxxxxxで始まるOCI7の関数を使って
アクセスしないといけません。
一回、あきらめかけたけど…
なるほど。ORACLE8以降にも接続できるクライアントを用意するといいのですね。(DBD::ORACLEをいじって、OCI7の関数で呼び出すように改造するのは自分のスキルではできなさそうな気がしますし…)
いま使っているクライアントは5〜10年前に購入したもので、データベースもバージョンアップされていないし、使えるものを使って、ちょっと便利にしようと頑張っているところでして…
ちょっとお金がかかる方法かと思いますし、
簡単には購入することができないので、クライアントを手にする機会があれば試してみたいと思います。どうもありがとうございました。
いまだにORACLE7.3使っているっていうと、その道の人は「懐かしいねぇ」といいますね。
ともかく
当面はDBD::ODBCで運用したいと思います。
DBD:;ODBCを使うことにしました。
なんか、腑に落ちないというか、どこかで誰かはうまく使いこなしているような気がしてならないです。DBD::ORACLEの説明書には7対応って書いてあるし。DBD::ORACLEのようなフリーソフトを自分で作れないし、無能だからいけないんだとは思いますが、ちょっと寂しいですね。
とりあえず、ここで質問して駄目だったし、一般的にも難しいお話だということがわかりました。あきらめる決心がつきました。ありがとうございました。