0

友人、perl の専門家の 1 人が、私がここで間違っていることを教えてくれませんか?

私はまだperlを学んでいるので、これで初心者です..何をしても、接続文字列が機能しません。

  1. cmdプロンプトで以下の引数を使用して、perlスクリプトでOracleデータベースに接続しようとしています。

    $ list_tables /@testdb

  2. dba_tables にクエリを実行し、ユーザー ABC のテーブルを一覧表示します

  3. ログファイルにも出力を取得
#!/usr/local/bin/perl -w      
use strict;
use Getopt::Std;
use OracleAgent;
use OracleLoginString;

my exitStatus = 0;
my %options = ();
my $oracleLogin;

getopts("o",\%options);

if (defined $options{o}) {
    $oracleLogin = $options{o};
}
else {
    exitWithError());
}

my $db = DBI->connect('dbi:Oracle:',$oracleLogin,'')
    or die "Can't connect to Oracle database: $DBI::errstr\n";

exit($exitStatus);

基本的に、スクリプトを実行するときは、パスワードではなくインスタンス名を提供したいだけです。

Oracleログインなどを使用しているため、パスワードなしでsqlplusプロンプトから接続できます$sqlplus "/@testdb"

4

1 に答える 1

0
  1. DBD::オラクルを追加

    use DBD::Oracle;
    
  2. 適切な接続文字列を記述します。

    my $db = DBI->connect("dbi:Oracle:host=$host;sid=$sid", $user, $passwd);
    
于 2013-01-24T21:38:30.880 に答える