• 締切済み

Oracle-Perlの接続

Oracle と Perl の接続で悩んでいます。 申し訳ありませんが何方かご教授下さい。 OS:Red Hat Enterprise Linux ES release 4 Perl:perl v5.8.5 DB:oracle-xe-univ-10.2.0.1-1.0.i386 ドライバーは以下をインストールしてあります。 perl-DBD-Pg-1.31-6 perl-DBD-MySQL-2.9004-3.1 perl-DBI-1.40-8 以下もインストールしてみましたが駄目でした # rpm -ivh oracle-instantclient12.1-basic-12.1.0.1.0-1.i386.rpm # rpm -ivh oracle-instantclient12.1-devel-12.1.0.1.0-1.i386.rpm # rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.i386.rpm 環境変数の設定(.bash_profileに以下を設定) . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh Perlでサンプルプログラムを作成して、他の同等のサーバでは正常に動作確認した プログラムを、このサーバで実行すると以下の様なエラーが出ます。 [oracle@IJYOU]$ perl test_db.pl install_driver(Oracle) failed: Can't locate DBD/Oracle.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at (eval 1) line 3. Perhaps the DBD::Oracle perl module hasn't been fully installed, or perhaps the capitalisation of 'Oracle' isn't right. Available drivers: ExampleP, Pg, Proxy, mysql. at /home/oracle/test2_setting.pl line 18 どうか何方かお願いします。

  • Oracle
  • 回答数1
  • ありがとう数11

みんなの回答

  • entree
  • ベストアンサー率55% (405/735)
回答No.1

エラーのとおりです。Oracleに接続するには、DBD-oracleが必要です。 http://search.cpan.org/~pythian/DBD-Oracle-1.74/lib/DBD/Oracle.pm perl-DBD-Pg-1.31-6 <<PostgreSQL用ドライバ perl-DBD-MySQL-2.9004-3.1 <<MySQL用ドライバ perl-DBI-1.40-8 <<1DB毎の差分を吸収するためのインターフェース Oracle用のドライバはインストールされていないようです。

mejina1
質問者

お礼

ご回答頂き誠にありがとう御座いました。 DBD-Oracle-1.74.tar.gz perl-DBD-Oracle-1.19-1.el4.i386.rpm 等をインストールしようとしましたがエラーになってしまい インストール出来ませんでしたが cpan でインストールしたら成功してOracle-Perlの接続も出来るようになりました。 返事が遅れて申し訳ありませんでした。

関連するQ&A

  • perl DBD::Pg インストールでエラー発生

    こんにちは。 以下の環境でPerl+postgreSQLのCGIを作成していますが、 DBI、DBD::PGのインストールでエラーが出てしまい大変困っています。 どうぞお力添えをお願いします。 環境---------------------- OS:CentOS VERSION = PostgreSQL 8.1.18 Perl:v5.8.8 -------------------------- ●手順 CPANより下記モジュールをダウンロードし、 ・DBI : DBI-1.609.tar.gz ・DBD::PG : DBD-Pg-2.16.1.tar.gz それぞれ ・perl Makefile.PL ・make ・make install を実行。 DBD::PGの perl Makefile.PL で pg_config のパスを聞かれるが存在しなかったため、ネットの情報から以下を実行。 yum install postgresql-devel 再度DBD::PGのperl Makefile.PL を実施しましたが、以下のようなワーニング(※1)が出力してしまい、 make,make installを実施後に動作確認のスクリプトを実行してもやはりエラーとなってしまいます。(※2) ※1 Warning: prerequisite version 0 not found. Could not eval ' package ExtUtils::MakeMaker::_version; no strict; local $VERSION; $VERSION=undef; do { use version; our $VERSION = qv('2.16.1'); }; $VERSION ' in Pg.pm: Can't locate version.pm in @INC (@INC contains: t/lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 10) line 7, <FH> line 20. BEGIN failed--compilation aborted at (eval 10) line 7, <FH> line 20. WARNING: Setting VERSION via file 'Pg.pm' failed at /usr/lib/perl5/5.8.8/ExtUtils/MakeMaker.pm line 515 Multiple copies of Driver.xst found in: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ at Makefile.PL line 263 Using DBI 1.609 (for perl 5.008008 on i386-linux-thread-multi) installed in /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ Writing Makefile for DBD::Pg ※2 install_driver(Pg) failed: Can't locate version.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/Pg.pm line 20. BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/Pg.pm line 20. Compilation failed in require at (eval 3) line 3. Perhaps a module that DBD::Pg requires hasn't been fully installed at ./test02.pl line 5 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • perlのモジュールについて

    Linuxを使って間もない者です.xamppをLinuxにインストールしたのですが、モジュールの格納場所が違っているせいかうまくCGIスクリプトがうまく実行できません. Linux上でのperlモジュールの格納場所を教えていただけないでしょうか? 以下エラー内容 Can't locate JSON/PP.pm in @INC (@INC contains: /usr/lib/perl5/5.8.6/i386-linux-thread-multi /usr/lib/perl5/5.8.6 /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi 省略・・ /usr/lib/perl5/vendor_perl/5.8.6 //usr/local/lib/site_perl/5.8.2/i386-linux-thread-multi /usr/local/lib/site_perl/5.8.2 /usr/local/lib/site_perl .) at (eval 4) line 3.

  • @INCにセットされたディレクトリとはどういう意味ですか?

    中島さんのXPDFJ(http://hp1.jonex.ne.jp/~nakajima.yasushi/)を利用してPDFファイルの生成を試みています。 分らないことだらけではあるのですが、試行錯誤しながらやっておりまして、cgiファイルでいろんな操作をしている中の1つにPDFファイルの作成ができるように、次のように書き、perlチェックをしてみたところその下の内容のエラーが表示されました。 書いた内容 $outfile = "○○.pdf"; $xmlfile = "○○.xml"; use XPDFJ; $xpdfj = new XPDFJ; $xpdfj->parsefile($xmlfile, outfile => $outfile); 出てきたエラー内容 Can't locate XPDFJ.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at ○○.cgi line 2760. BEGIN failed--compilation aborted at ○○.cgi line 2760. readme.txtを読むと「PDFJを構成する次のモジュールファイル群をPerlから利用できる(すなわち@INCにセットされた)ディレクトリにおけば利用できる」とあるのですが、この@INCにセットされたディレクトリとはどこのことを言っているのでしょうか。 レンタルサーバー(専用サーバーではありません)では扱えない領域なのでしょうか。

    • ベストアンサー
    • Perl
  • MTテンプレート 構築中エラー発生しました

    MT超初心者です。 無料で配布されているテンプレートを構築中以下のようなエラーが発生してしまいました。 Can't locate MTPaginate.pm in @INC (@INC contains: /home/siegfried/siegfried.xsrv.jp/public_html/mt/plugins/StyleCatcher/lib /home/siegfried/siegfried.xsrv.jp/public_html/mt/plugins/GoogleSearch/lib /home/siegfried/siegfried.xsrv.jp/public_html/mt/plugins/WidgetManager/lib /home/siegfried/siegfried.xsrv.jp/public_html/mt/plugins/spamlookup/lib /home/siegfried/siegfried.xsrv.jp/public_html/mt/extlib lib /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at /home/siegfried/siegfried.xsrv.jp/public_html/mt/plugins/MTPaginate.pl line 86. ページ分割という事で Paginateプラグインていう物もダウンロード しMTダウンロードしたフォルダー内のpluginsフォルダー内にも Paginate.plをアップしました。 本来なら配布先に直接質問すべきだと 思うのですが、質問コーナーやアドレスもなかったため、こちらに 質問させていただくことにしました。 アドバイスの方いただけたらと思います。よろしくお願いします。

  • 解決法が見つかりません。

    フォームで入力した内容を担当者宛てにメールを送るプログラムを作っています。 以下のエラー文が出ました。 Can't locate Jcode/_Classic.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at Jcode.pm line 40. 何となく、「Jcode/_Classic.pm」が見つからない事は解るのですが、コレが何なのか、どこに何をどうすればいいのか全くわかりません。

    • ベストアンサー
    • Perl
  • Perl+DBD::Oracleのエラーがわからず困っています

    jboss と申します。お世話になります。 Solaris 上で動作させていた cgi プログラムを Linux へ移行しています。 下記の動作環境にて、ブラウザより該当プログラムを実行すると、 下記のようなエラーが発生します。 ■ 動作環境 OS RedHatLinux EL4.0 Apache 1.3.37 Perl 5.8.5 DBI 1.52 DBD::Oracle 1.18 DB Oracle 8i (8.1.7) ■ Apache のエラーログ install_driver(Oracle) failed: Can't load '/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle .so' for module DBD::Oracle: libclntsh.so.8.0: cannot open shared object file: No such file or directory at /usr/lib/per l5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230, <DATA> line 855. at (eval 7) line 3 Compilation failed in require at (eval 7) line 3, <DATA> line 855. Perhaps a required shared library or dll isn't installed where expected at /export/home/orasql.pl line 30 エラーログから解決方法を検索して、下記の方法は試したのですが解決しません。 ・LD_LIBRARY_PATH の追加 ・libclntsh.so.8.0 のパーミッション変更 ご存知であればご教授の程、お願い致します。

  • エラーログについてお尋ねしたいことがあるのですが。

    エラーログについてお尋ねしたいことがあるのですが。 CGIがうまく接続されずサーバー上で500エラーになるためサーバー管理者に尋ねたところエラーログに以下のようにKihon.pmが見つからない模様です。という返事が返ってきましたがCGIは詳しくないため、この内容が理解できずに困っています。 また、このような場合の回避策などがあればご指導願いたいと思っています。 Can't locate Kihon.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at kanri.cgi line 16. BEGIN failed--compilation aborted at kanri.cgi line 16.

    • ベストアンサー
    • CGI
  • HTML::Embperlが使えない!

    HTML::Embperlをインストールしてプログラムを作成したのですがエラーになってしまうのです! OSはRed Hat Linux 8で Perlはv5.8.0 built for i386-linux-thread-multiで HTML::EmbperlはHTML-Embperl-1.2b4-2.i386.rpmです。 原因を特定するために次のとおり、いたって単純なプログラムを作成しました。 #!/usr/bin/perl -w use strict; use HTML::Embperl; これを実行すると Can't locate loadable object for module HTML::Embperl in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-t hread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at ./try line 3 Compilation failed in require at ./try line 3. BEGIN failed--compilation aborted at ./try line 3. のように長々とエラーメッセージが出てしまいます。 $ ls -l /usr/lib/perl5/site_perl/HTML/Embperl.pm -r--r--r-- 1 root root 39448 2月 15 1999 /usr/lib/perl5/site_perl/HTML/Embperl.pm HTML::Embperlのインストール自体は成功していると思うのですが・・・ 誰か、他に何をチェックすればいいか教えてください~

    • ベストアンサー
    • Perl
  • Pg.pmモジュールがロードできない

    現在、Webサーバが古くなったため、新しいWebサーバにアプリケーションを移行しようとしています。PerlもPostgreSQLもインストールし、プログラムを実行するのですが、以下のエラーメッセージが表示されます。 エラーメッセージ表示: Can't locate Pg.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi (中略)BEGIN failed--compilation aborted at mgdbrest.pl line 37. でエラーになってしまいます。 環境: パッケージのインストール確認をすると問題なく、Pg.pmパッケージもインストール済みです。またPg.pmファイルも存在します。 またperl -Vコマンド実行でも@INCも表示されます。 OS: MiracleLinux4.0 %rpm -qaの結果 perl-DBD-Pg-1.31-6.1AX postgresql-libs-8.0.8-1.2AX postgresql-pl-8.0.8-1.2AX %Pg.pmファイルの登録状況 /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/DBD/Pg.pm %perl -Vの結果(一部抜粋) Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Built under linux Compiled at Aug 23 2006 01:53:27 @INC: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi 質問: 対処方法を御存知の方がみえたら教えてください。やはり再インストールしなければならないのでしょうか。

    • ベストアンサー
    • Perl
  • Can't locate R.pm in @INC

    perl初心者でまた質問させていただきます。 CGIを作っているのですが、R.PMが使えなくて困っています。 USE R; とすると、以下のようなエラーが出てしまいます。 Can't locate R.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .) at /srv/www/htdocs/cgi/ringo.cgi line 5. BEGIN failed--compilation aborted at /srv/www/htdocs/cgi/ringo.cgi line 5. Premature end of script headers: ringo.cgi そこで、 locate R.pm で、場所を探しました。 /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/R.pm ということで、 use R '/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/'; このように変えてみたものの、同じエラーです。ちなみに、CGIではなく、PERLのプログラムからだと、use R;で動作することは確認しました。 よろしくお願いします。

    • 締切済み
    • CGI