Oracle
Oracle:與 sqlplus 連接,但不是來自 perl
我需要從 perl 腳本連接到 Oracle 數據庫,它在我的測試和使用 sqlplus 時有效,但在生產中無效。這是情況的總結:
Oracle 11g XE (11.2.0.2.0) : (Test environment) sqlplus : OK perl : OK Oracle 11g (11.2.0.4.0) : (Production environment) sqlplus : OK perl : ERROR
報告的錯誤是:
Connect failed because target host or object does not exist
我已經三次檢查了連接設置並且沒有弄錯。
規格:
- 測試伺服器:Windows Server 2012
- 生產伺服器:Windows Server(未知版本)
- 客戶端:Ubuntu 18.04 x64
- Perl:5.26.1
- SQL*Plus:12.2.0.1.0
SQL*Plus 命令:
sqlplus64 user/password@192.168.0.1/db_sid
Perl 腳本:
#!/usr/bin/perl use DBI; $driver = "Oracle"; $sid = "db_sid"; $host = "192.168.0.1"; $dsn = "DBI:$driver:sid=$sid;host=$host"; $dbh = DBI->connect($dsn, "user", "password");
注意:直到下個月,我才能在生產環境中測試或執行任何東西。
可能是什麼問題?
連接字元串格式錯誤。採用
$dsn = "DBI:$driver:$host/$sid";