我需要从 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/[email protected]/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");
注意:直到下个月,我才能在生产环境中测试或执行任何东西。
可能是什么问题?
连接字符串格式错误。利用