• ベストアンサー

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

  • Perl
  • 回答数5
  • ありがとう数5

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

  • ベストアンサー
回答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

  • dbd-oracleのインストールについて

    環境 Win2000 Oracle9i ActivePerl5.8? バージョンの見方がわかりません・・・。 お世話になります。 dbd-oracleをppmを利用してインストール仕様と思ったのですが、 Error: PPD for 'DBD-Oracle.ppd' could not be found. のエラーとなります。searchしてみるとやっぱりないので、今度CPANからDBD-Oracle-1.16.tar.gzをダウンロードして、展開したいと思っているのですが、ダウンロード&解凍はできたものの、インストールの方法がわかりません。いろいろWeb上の検索もしてみたのですが、なかなかよいものにヒットしません。初心者ですので、細かいところまでわかっていませんので、なるべく詳しく説明していただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • DBD-Oracleがインストール出来ません。

    お世話になります。 下記の環境でDBD-OracleがPPMでインストールできずに困っています。 windows2000server ActivePerl5.6.1 oracle9.2.0.1 以前同じ環境でインストールした時は問題なくインストールできたのですが、その時のDBD-OracleはVer1.12でした。 現在インストールしようとするとVer1.16になっておりPPMでインストール中に下記のメッセージで止まってしまいます。 Can't remove directory C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/DBD-Oracle-1756: Permission denied at C:/perl/site/lib/PPM.pm line 448 どなたかわかる方おられましたら、ご教示下さい。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • Oracleのデータベースに接続できない。

    OS : WindowsXP SP2 Perl : ActivePerl 5.8.8 DBD : DBD-Oracle1.17 DB : Oracle9i PerlでOracleのDBサーバに接続ができません。 ソースは以下の通りです。 ================================================================================ #!perl -w use DBI; $dbh = DBI->connect('dbi:Oracle:test', 'scott/tiger') or die "An error occured : $@"; $dbh->disconnect; exit 0; ================================================================================ 上記コードを実行すると、connectの行でdieします。 ================================================================================ D:\test>perl ttoracle.pl DBI connect('test','scott/tiger',...) failed: ORA-12705: Cannot access NLS data files or invalid environment specified (DBD ERROR: OCISessionBegin) at ttoracle.pl line 5 An error occured : at ttoracle.pl line 5. ================================================================================ Oracleのサーバーはローカルにあり、ポートもデフォルトの設定です。 試しに、 $dbh = DBI->connect('dbi:Oracle:test@localhost:1521', 'scott/tiger') or die "An error occured : $@"; としましたが、結果は同じでした。 また、エラーの内容的に環境変数かと思いORACLE_HOMEを環境変数にセットしてみましたが、これもまた、結果は同じでした。 DBの接続については、sqlplusコマンドからであれば問題なく接続できます。 (コマンド:sqlplus scott/tiger@test) やはり、環境変数まわりの設定が問題でしょうか? よろしくお願いします。

  • PerlからOracleに接続

    ご存知の方おられましたら、ご教示お願い致します。 昨日より、Perlのプログラムを始め、Oracleに接続するものを作成しておりまが以下のエラーがでてきて困っております。 接続部分ソース--------------------------- #!C:\パス use DBI; $dbh = DBI->connect("dbd:Oracle:データベース名", "ユーザ","パスワード"); エラー----------------------------------- install_driver(Oracle) failed: Can't locate loadable object for module DBD::Orac le in @INC (@INC contains: C:/Program Files/Perl/lib C:/Program Files/Perl/site/ lib .) at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a module that DBD::Oracle requires hasn't been fully installed at database.pl line 5 環境--------------- OS WindowsXP pro perl ActivePerl-5.8.6.811 DBI,DBDはPPMでインストールしました。 接続先 OS Windows2003 DB oracle9 後、 use DBI; @ary = DBI->available_drivers; foreach (@ary){ print $_,"\n"; } でDBI使用できるDBDドライバを出した結果、Oracleが表示されておりました。 どうか、ご存知の方お願い致します。

  • Windows2003serverでActivePerlのDBIモジュ

    Windows2003serverでActivePerlのDBIモジュールのインストールができません。 PPMでDBIモジュールをインストール使用としたところ下記のエラーが出てしまい、インストールができませんでした。 Error installing package 'DBI' : Error reading http://ppm.activestate.com/PPMPackages/5.6/MSWin32-x86-multi-thredad/DBI-1.48.tar.gz これをインストールする方法はなのでしょうか? ちなみに、ActivePerlのバージョンは5.6.1で、諸事情によりアップグレードすることができません。 ※補足 直接DBI.ppdをインストールするという記事を見つけましたが、ダウンロード先のURLになぜかベーシック認証がかかっていてダウンロードできませんでした。 ■直接DBI.ppdをインストール http://kisa.homeip.net/wiki/?MovableType%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%28Windows%CA%D4%29 ■インストール先URL(ベーシック認証がかかっていて入れません) http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/ どなたか分かる方いらっしゃいまたらよろしくお願い致します。

    • ベストアンサー
    • Perl
  • Oracleデータベースに接続

    いつもお世話になります。 DBD-Oracleモジュールを使用して接続を試みているのですが、以下のエラーになります。 「プロシージャエントリポイントPL_memory_wrapがperl58.dllからみつかりません」 とダイアログが表示され、 install_driver(Oracle) failed: Can't load 'C:/Perl/site/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:指定されたプロシージャが見つかりません。 at C:/Perl/lib/DynaLoader.pm line 230. at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a required shared library or dll isn't installed where expected at test.pl line 16 とメッセージがでます。 スクリプトは以下です。 $hDB = DBI->connect("dbi:Oracle:host=$host;sid=$sid", $user, $passwd); $hSt = $hDB->prepare("SELECT * FROM emp"); $nRes = $hSt->execute; while(@aRes = $hSt->fetchrow) { print join("\t", @aRes), "\n"; } $hSt->finish; $hDB->disconnect; 環境: Windows2000Server ActivePerl 5.8.6 Oracle8i どなたかわかる方おりましたら、ご教示下さい。。宜しくお願い致します。

    • ベストアンサー
    • Perl
  • Perl DBD::Mysql

    はじめて質問いたします。 現在MovableType導入しようとしています。 ですが、ActivePerlとMYSQLを接続させる為のDBD::Mysqlが インストールができません。どなたか詳細な方法を 教えてください。 ActivePerl:5.10 windows XP Apache 2.0.63 DBIはインストールできています。 コマンドプロンプトで ppm-shell install DBD-mysql 上記を試すと下記のエラーがでます。 ppm 4.02Copyright (C) 2007 ActiveState Software Inc. Allrights reserved. ppm> install DBD-mysql Downloading ActiveState Package Repository packlist...not modified ppm install failed: Can't find any package that provides DBD-mysql Perl package managerで確認すると DBD::Mysqlはありませんでした。 よろしくお願いします。

  • perl5.88で、DBI及びDBD-mysqlモジュールがインストールできない。

    質問があるのですが、よろしくお願いします。 perl5.8.8を導入し、ppmでDBIモジュールとDBD-mysqlモジュールをインストールしようと思ったのですが、コマンドラインから ppm install DBI としても Downloading ActiveState Package Repository Packlist...not modified No missing packeages to install というエラーが出てしまい、全くインストール出来ません。 ppm install DBD-mysql とした時も同様です。 どうしてこのようなエラーがでるのか、またどうすればDBI、DBD-mysqlモジュールがインストール出来るか、わかる方いらっしゃたらご教授頂けると幸いです。よろしくお願いしますm(_ _)m

  • ActivePerlのPPMが起動しません

    ActivePerlでCPANの追加をするためにコマンドラインから  ppm と入力しました。 本来ならこれでPPMのGUI画面が出てくるはずなのですが、何故か以下のようなエラーが出ます。  ppm gui failed: DBI connect('dbname=C:\Users\三和\AppData\Local/ActiveState/ActivePerl//ppm-MSWin32-x86-multi-thread-5_10.db','',...) failed: unable to open database file データベースファイルが無いとのことですが、実際  ppm-MSWin32-x86-multi-thread-5_10.db とやらをコンピュータ全体から検索してみましたが見つかりませんでした。 パスの方も何でこのファイル名の前に /(スラッシュ)が2個も付いているのか・・・ 一度アンインストールして再度インストールしてみましたが、やはり駄目です。 こういった場合、どういう方針でトラブルに対処すべきでしょう。

    • ベストアンサー
    • Perl
  • CGI でDBI->connectするとエラー発生

    お世話になります。 CGIでORACLEに接続しようとしたところ、Internal Server Errorが発生し 困っております。 環境: ORACLE:10.2.0 DBI:1.48 DBD:DBD-Oracle1.16 PERL:5.8.0 APACHE:2.2.0 OS:RED HAT LINUX ES 3.0 プログラム上落ちる場所: DBI->connectのところ エラーの発生する傾向: APACHEでCGIを実行した時だけ コマンドライン上で実行するとエラーは発生しない また、CGIでもDBI->connectを外すとエラーは起きない APACHEのエラーログ: install_driver(Oracle) failed: Can't load '/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread- multi/auto/DBD/Oracle/Oracle.so' for module DBD:: Oracle: libnnz10.so: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.0/i386-linux-thread- multi/DynaLoader.pm line 229 今までに試した事: ・環境変数の定義確認(LD_LIBRARY_PATH等、cgiに記述) ・環境変数の取得確認(cgi実行時に画面に表示) ・/etc/ld.so.confに$ORACLE_HOME/libを追記&ldconfig実行 ・httpd.confに環境変数のセットを記述(SetEnv) ・libclntsh.so.10.0が$ORACLE_HOME/lib以下にある事を確認 ・DBDをSTATICオプションをつけてインストール ・/usr/libや/libにOracle.soをコピー ・環境変数LD_RUN_PATH(Oracle.soのパス)を追加 一体どこが悪くて動かないのか、途方にくれております。 原因として何が考えられるか、その場合どう対処すれば良いか、 ご教示いただければ幸いです。 他にも必要な情報や、試すべき事がありましたら遠慮なくどうぞ。 よろしくお願い致します。

    • ベストアンサー
    • CGI