【发布时间】:2013-01-24 21:25:27
【问题描述】:
一位 perl 专家可以告诉我我在这里做错了什么吗?
我还在学习 perl,所以这个新手..无论我做什么,我的连接字符串都不起作用。
-
尝试使用 perl 脚本在 cmd 提示符下使用以下参数连接 oracle 数据库。
$ list_tables /@testdb 查询用户ABC的dba_tables并列出表
- 同时在日志文件中获取输出
#!/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"
【问题讨论】:
-
您是否安装了 DBD::Oracle 和 oracle 客户端?
-
是的,一切都在那里,还有许多脚本在同一主机上运行。我可以通过提供用户名和密码进行连接,但这不是最佳选择。
-
基本上想法是为脚本名称提供数据库名称,例如
$./list_name -o /@testdb