2013-01-24 42 views
0

朋友可以让一位perl专家告诉我我在做什么错在这里?perl连接问题新手

我仍然在学习perl,所以这个新手,不管我做我的连接字符串不工作。

  1. 试图用cmd提示符下的参数连接oracle数据库与perl脚本。

    $ 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); 

基本上当我执行脚本我只是想提供实例名称输出而不是密码。

我可以从sqlplus提示无需密码连接,因为使用oracle登录例如$sqlplus "/@testdb"

+0

是否安装DBD :: Oracle和Oracle客户端? –

+0

是的,一切都在那里,同样的主机上也有很多脚本运行。我可以通过提供用户名和密码进行连接,但这不是最佳选择。 – Khallas301

+0

基本上想法是提供带有dbname的脚本名称,例如'$。/ list_name -o/@ testdb' – Khallas301

回答

0
  1. 添加DBD::Oracle

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

    my $db = DBI->connect("dbi:Oracle:host=$host;sid=$sid", $user, $passwd);