Perl DBI ステートメントがあります
my $sql_statement = "select c.* ".
"from meter_category c ".
"where c.category = ".$current_category." ".
"and c.effective_date <= ".
$DBHdl->quote($time_stamp)." ".
"and c.meter_size = ".$meter_size." ".
"order by c.effective_date desc ; ";
$DBHdl
Informix データベース ハンドルです。
ステートメントは次のようになります。
select c.*
from meter_category c
where c.category = 1
and c.effective_date <= '09/20/2013'
and c.meter_size = 0.63
order by c.effective_date desc ;
関数のある時点で、$current_category
2 に設定してから $sql_statement を変更したいと考えています。
後
$current_category = 2;
eval $sql_statement
$sql_statement は変更されないため、c.category = 2
.
置換を実行する方法はありますか、それともステートメントを再発行する必要がありますか?
次のコードを使用して、$current_category の各値に対するクエリを準備して実行します。
my $ptSelHdl = $DBHdl->prepare($sql_statement);
die("Could not prepare \$sql_statement for meter charge.\n")
if(!$ptSelHdl || !$ptSelHdl->execute);