0

一位perl专家可以告诉我我在这里做错了什么吗?

我还在学习 perl,所以这个新手..无论我做什么,我的连接字符串都不起作用。

  1. 尝试在 cmd 提示符下使用以下参数将 oracle 数据库与 perl 脚本连接。

    $ list_tables /@testdb

  2. 查询用户ABC的dba_tables并列出表

  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::Oracle

    use DBD::Oracle;
    
  2. 写一个正确的连接字符串:

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