2013-01-24 85 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);