2

2つのクエリがあります

  1. 以下のperlスクリプトを実行すると、以下のエラーが発生します

Unable to connect: ORA-12154: TNS:could not resolve the connect identifier specified (DBD ERROR: 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ライブラリのローカルインストールが必要なのかと考えましたか?

4

1 に答える 1

3

DSN 構文が間違っています。以下のようにしてみてください。

$dsn = "dbi:$platform:host=$host;sid=$sid;port=$port";

上記の構文は、私が使用した多くのケースで機能しましたDBD::Oracle

于 2013-01-08T07:00:56.513 に答える