• ベストアンサー

ActivePerlでデータベース(oracle)

お世話になります。 http://okweb.jp/kotaeru.php3?q=1573758で質問をしている者です。 未解決ですが、環境の構築段階からうまくできていないのではと思い perlでOracle環境を構築する方法を確認させていただきいです。 http://www.tohoho-web.com/lng/199909/99090253.htm http://homepage3.nifty.com/hippo2000/perltips/perlora.htm 上記を参考に、PPMから必要なモジュール DBI DBD-Oracle をinstallしているのですが、インストールは問題なく終了します。 接続を試みると、前回質問させていただいたエラーになります。 何か見落としているのでしょうか・・、他にどんな原因が考えられるかなど なんでもよいのでご教示いただけたらと思います。 宜しくお願い致します。 ActivePerl5.8.6 windows2000server oracle8i

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

自分では、必要性がないので、あえてActivePerl522のまま、DBI+Oracleを使っているので、 詳細については、解らないんですが・・・ 気になって、ActivePerl811(5.8.6)をインストールして確認しましたが、やはりダメみたいですね。 ほぼ同じような結果になります。 そもそも、DBD-Oracleが古く、v5.8.6を想定していない(≒Perl側の下位互換性のなさ)に 由来するもののような気がします。 ということで、Perlのバージョンをある程度下げるのが良いかもしれません。

geso775
質問者

補足

>気になって、ActivePerl811(5.8.6)をインストールして確認しましたが、やはりダメみたいですね。 再現までして頂き大変感謝ですm(. .)m 同じにおいのする方がいらっしゃったので過去ログを追ったのですが、 http://www.hippo2000.info/dbi-japan/2500/2203.htm ご指摘のように、perlを5.6.xまでダウンすればいける兆しです。 先程までDBD::oracle8(for5.6.x)を入れたりと互換性の模索をしていました。しかしキリがないようで^^; http://www.hippo2000.info/dbi-japan/2500/2360.htm ppm置き場にモジュールが無いのはver5.8.xではOracleを使うなって事ですかね?(苦笑)

その他の回答 (4)

回答No.5

>ppm置き場にモジュールが無いのはver5.8.xではOracleを使うなって事ですかね? activestateで、ダウンロードできるPPMのリストには、v5.8.x用DBD-Oracleは存在しません。 PPMで、ダウンロードインストールできるのが不思議な感じです。 基本的に、私が、ActivePerl522を使い続ける理由は・・ ・v5.6.xシリーズは、日本語の取り扱いがめんどくさい。(jcode頼り) ・v5.8.xシリーズの最初の頃のバージョンは、encodeにバグがある。 ・なにより、v5.005.03(522)で、困ることがない。 といったのが感じですかね。

geso775
質問者

お礼

先程、ダウングレードして以下の構成で無事Oracleに接続できるようになりました! perl 5.6.1 DBI(1.48) DBD-Oracle8(1.06) >PPMで、ダウンロードインストールできるのが不思議な感じです。 perlのverに応じたモジュールの対応はしていないみたいですね。 perl5.6.xでppmでsearchしてみたら、5.8.xと同様のDBD-Oracleモジュール (バージョン)が出てきました。。 >基本的に、私が、ActivePerl522を使い続ける理由は・・ >といったのが感じですかね。 私のところでは文字コードは重要でして、今まで通りjcodeに頼ること、 またmimeなどメール関連のverと相談して5.6.xに致しました。 度重なるアドバイスありがとうございました。 多分またすぐお世話になるかもですが^^; どうぞよろしくお願いします。

回答No.3

使っているパッケージは、正しいモノのようですね。 とりあえず、ログインの部分は、間違っているようなので、 次のように変えると良いかと思います。 $hDB = DBI->connect("dbi:Oracle:$sid", $user, $passwd);

geso775
質問者

お礼

あからさまに間違えてました^^;。ご指摘ありがとうございます。 hDB=DBI->connect("dbi:Oracle ・・・) dbi:Oracleを指定した時点で該当のエラーになるので、モジュールなんでしょうが なかなか解決に至りません。。 javaやrubyで代用がききますがやっぱりperlで動かしたい・・といったところです。

回答No.2

まず、インストールされたPPMのモジュール名(というかパッケージ名)をお知らせ下さい。 (通常、activestateからダウンロードすると思いますが、どれですか?) 貴殿が、参考にされているサイトで紹介しているパッケージと、 実際にインストールしているパッケージが違うように思うのです。

geso775
質問者

お礼

k_o_r_o_c_h_a_n様ありがとうございます。いつもお世話になっております。 >まず、インストールされたPPMのモジュール名(というかパッケージ名)をお知らせ下さい。 ppmからインストールしております。接続先は指定しておりませんので(できるのか?) activestateデフォルトのサイトに接続されていると思います。 パッケージは問題なくインストールされます。 Successfully installed DBI version 1.48 in ActivePerl 5.8.6.811. Successfully installed DBD-Oracle version 1.16 in ActivePerl 5.8.6.811. 再度installしなおしましたが、やはり現状のままです。 こんな情報でよろしいでしょうか?宜しくお願い致します。

  • omni2
  • ベストアンサー率53% (33/62)
回答No.1

回答ではありませんが、 また、oracleは触ったこともないので、なんともいえませんが、activestateのメーリングリストのperl-DBIの過去ログにヒントがあるかもしれません。 英語なので、私はさっぱり、よめません・・ 解決にいたればいいのですが、ご参考までに。 http://aspn.activestate.com/ASPN/Perl/Mail/ http://aspn.activestate.com/ASPN/Mail/Browse/Threaded/perl-DBI

geso775
質問者

お礼

アドバイスありがとうございます。 頂いたMLを読みに行って参りました。私も英語は苦手です^^; 数十件ほど目を通し私と同じ境遇の方もいるようでした。 私の場合ファンクションポイントが見つからないとエラーになりますが その方はモジュールをロードできないなど違いはありましたが、モジュールはDynaLoader.pmと共通だったりします。 (接続時、最初にそれを呼び出すと思うのでこれだけでは確かではないですが) ActivePerlでOracleつないでいる方は少なからずいるはずなので、コンポーネント は疑いませんでしたが、コンポーネントも調べてみます。

関連するQ&A

専門家に質問してみよう