Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 使用Perl选择1from@db_link其中db_链接来自查找表的每个条目_Database_Oracle_Perl_Lookup - Fatal编程技术网

Database 使用Perl选择1from@db_link其中db_链接来自查找表的每个条目

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

我想在Oracle中读取一个表,其中包含用于检查每个数据库链接可用性的数据库链接,并仅返回每个数据库链接的错误结果和错误消息

我想将这个查找表提取到一个数组中,并将db_链接的条目传递给select from dualQdb_链接,测试所有查找条目以测试成功或失败。这在perl中似乎很难实现


有什么想法吗?

看起来很简单,比如:

# 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')