【问题标题】:perl connectivity issue for newbie新手的perl连接问题
【发布时间】:2013-01-24 21:25:27
【问题描述】:

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

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

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

    $ 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"

【问题讨论】:

  • 您是否安装了 DBD::Oracle 和 oracle 客户端?
  • 是的,一切都在那里,还有许多脚本在同一主机上运行。我可以通过提供用户名和密码进行连接,但这不是最佳选择。
  • 基本上想法是为脚本名称提供数据库名称,例如$./list_name -o /@testdb

标签: oracle perl


【解决方案1】:
  1. 添加DBD::Oracle

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

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

【讨论】:

    猜你喜欢
    • 2015-03-20
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多