我有两个疑问
- 当我运行下面的 perl 脚本时,我收到以下错误
无法连接:ORA-12154:TNS:无法解析指定的连接标识符(DBD 错误:OCIServerAttach)
我无法修改 tnsnames.ora,因为我没有访问权限。我知道 tnsnames.ora 没有 testdb 数据库的条目。有没有解决方法。我认为我正在使用 IP 地址访问远程 Solaris 计算机中的数据库,因此不需要本地 Solaris 计算机 tnsnames.ora 中的条目。
$platform = "Oracle";
$database = "testdb";
$host = "testdb.dev.test.com.au";
$port = "2000";
$user = "scott";
$pw = "tiger";
$dsn = "dbi:$platform:$database:$host:3306";
print "$dsn" . "\n";
# PERL DBI CONNECT (RENAMED HANDLE)
my $dbstore = DBI->connect($dsn, $user, $pw) or die "Unable to connect: $DBI::errstr\n";
2 我对DBD模块的理解是即使oracle没有安装在本地机器上DBD模块也应该工作。但我注意到在安装时它使用了 oracle 客户端库。因此,如果我安装 DBD::Sybase,我是否需要在本地计算机上安装 sysbase。既然我正在访问远程服务器数据库,为什么需要本地安装 oracle/sybase 库?
最佳答案
您的 dsn 语法错误。尝试使其如下所示:
$dsn = "dbi:$platform:host=$host;sid=$sid;port=$port";
以上语法在我使用 DBD::Oracle
的许多情况下都对我有用。
关于perl - 关于perl dbd oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14208937/