Database 使用Perl选择1from@db_link其中db_链接来自查找表的每个条目
我想在Oracle中读取一个表,其中包含用于检查每个数据库链接可用性的数据库链接,并仅返回每个数据库链接的错误结果和错误消息 我想将这个查找表提取到一个数组中,并将db_链接的条目传递给select from dualQdb_链接,测试所有查找条目以测试成功或失败。这在perl中似乎很难实现Database 使用Perl选择1from@db_link其中db_链接来自查找表的每个条目,database,oracle,perl,lookup,Database,Oracle,Perl,Lookup,我想在Oracle中读取一个表,其中包含用于检查每个数据库链接可用性的数据库链接,并仅返回每个数据库链接的错误结果和错误消息 我想将这个查找表提取到一个数组中,并将db_链接的条目传递给select from dualQdb_链接,测试所有查找条目以测试成功或失败。这在perl中似乎很难实现 有什么想法吗?看起来很简单,比如: # Or whatever the column is really named ;) my $dblinks = $dbh->selectcol_arrayref
有什么想法吗?看起来很简单,比如:
# Or whatever the column is really named ;)
my $dblinks = $dbh->selectcol_arrayref("select dbname from db_link");
for my $dblink (@$dblinks) {
my $success = eval {
my ($ret) = $dbh->selectrow_array("select 1 from "
. $dbh->quote_identifier($dblink, undef, "dual") );
$ret;
};
if ($success) {
say "$dblink is up";
} else {
say "$dblink is down";
}
}
+1表示
quote\u identifier()
。对于迂腐的观点,我认为动态SQL应该是:“从中选择1”$dbh->quote_identifer('dual',unde,$dblink)
@pilcrow:实际上,你已经把它倒过来了。它是`$dbh->quote_标识符('link','schema','table');`所以它应该是“从中选择1”$dbh->quote_identifer($dblink,undef,'dual')
。