- ベストアンサー
perlのdbi-connect処理のエラー
- Perlのdbi-connect処理でエラーが発生しています。
- active perlのdbi-connect処理が戻ってきません。どうすれば良いですか?
- PerlのDBI->connectから戻っていない理由を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
http://search.cpan.org/~pythian/DBD-Oracle-1.27/Oracle.pm ここらへんを見ると $dbh = DBI->connect("dbi:Oracle:host=xxx.xxx.xxx.xxx;sid=usrDB;port=8080",$user, $pass); みたいに書くようですよ。ただ、Oracleは使ったことないんで間違っているかもしれません。 ところで、8080ポートに接続しているということはWebプロキシに接続に行っているみたいなんですが、ポート番号は合っていますか? ちなみに、SQLiteの例ですが、トレースを出したいときは以下のようにします。Oracleでも似たような出力を出すことができると思います。以下、表示がくずれすので空白2文字を全角空白で書いていることに注意。 use strict; use warnings; use DBI; # DB Name my $db_name = 'sqlite_test.db'; # Disable buffering $| = 1; # Connect to the database my $dbh = DBI->connect( 'dbi:SQLite:dbname=' . $db_name, '', '', { PrintError => 1, ### Do report errors via warn() RaiseError => 0, ### Don't report errors via die() TraceLevel => 5 } ) or print DBI->errstr; # Disconnect from the database $dbh->disconnect; これを実行すると以下のような出力が出てきます。 DBI::db=HASH(0x9dda3a8) trace level set to 0x0/5 (DBI @ 0x0/0) in DBI 1.605-ithread (pid 4982) <> FETCH= 5 ('TraceLevel' from cache) at /usr/lib/perl5/DBI.pm line 693 -> STORE for DBD::SQLite::db (DBI::db=HASH(0x9dda3a8)~INNER 'Username' '') thr#9c7d008 ....