現在、データベースにアクセスし、特定のクエリを実行し、出力を端末に出力する perl スクリプトがあります。代わりに、pdf を生成する前に結果をテンプレート latex ファイルに出力したいと思います。ほとんどのクエリでは、数値を取り出してスカラー変数として保存します (たとえば、特定のオペレーターが特定のタスクを実行する頻度など)。例えば。
foreach $op (@operator) {
$query = "SELECT count(task_name) FROM table WHERE date <= '$date_stop' and
date >= '$date_start' and task=\'$operator[$index]\';";
#execute query
$result=$conn->exec($query);
$conres = $conn->errorMessage;
if ($result->resultStatus eq PGRES_TUPLES_OK) {
if($result->ntuples > 0) {
($task[$index]) = $result->fetchrow;
}
printf("$operator[$index] carried out task: %d\n", $task[$index]);
} else {
die "Failed.\n$conres\n\n";
exit -1;
}
$index++;
}
printf("**********************************\n\n");
最終レポートでは、各オペレーターが各タスクを何回完了したかを表にまとめます。これに加えて、報告しなければならないいくつかのインシデントもあります。次のようなコマンドを使用して、これらを端末に簡単に出力できます
$query = "SELECT operator, incident_type from table_name WHERE incident_type = 'Y'
and date <= '$date_stop' and date >= '$date_start';";
$result=$conn->exec($query);
$conres = $conn->errorMessage;
if ($result->resultStatus eq PGRES_TUPLES_OK) {
if($result->ntuples > 0) {
$result->print(STDOUT, 1, 1, 0, 0, 0, 1, "\t", "", "");
}
} else {
die "Failed.\n$conres\n\n";
exit -1;
}
このコマンドの出力例は次のとおりです。
operator | incident_type
-----------------------------
AB | Incomplete due to staff shortages
-------------------------------
CD | Closed due to weather
-----------------------------
結果を端末に送信するだけでなく、perl スクリプトでオペレーター名とインシデントを文字列配列に渡すにはどうすればよいですか?