![](/img/trans.png)
[英]perl/dbi/sql stumped by “operation must use an updatable query” error
[英]SQL error in DBI module in perl
運行此查詢時沒有得到任何輸出。 我無法弄清楚。任何人都可以幫助我。 在這種情況下,$ lastfiscyear = 09/10。
getitem44();
sub getitem44()
{
$sqlquery = sprintf("select sum(f.expenditure)
from funds f,ledger l
where l.ledger_id in (select ledger_id from ledger
where upper(ledger_name) like 'MONOACQ%' and
substr(ledger_name,length(ledger_name)-4, 5) = '%s') and
f.ledger_id = l.ledger_id and
substr(f.funds_name, 1, instr(f.funds_name,',')-1) like '%e' ", $lastfiscyear);
$sth = $dbh->prepare($sqlquery);
$rc = $sth->execute;
my $total = $sth->fetchrow_array;
print "$total\n";
}
您需要使用附加的百分號對%e
進行轉義,否則sprintf
會將其解釋為轉換說明符(科學計數法中的浮點數)。
sprintf "select sum(f.expenditure) ... like '%%e' ", $lastfiscyear;
有關詳細信息,請參見perldoc sprintf
。
請注意, sprintf
將使用%
符號作為占位符。 如果要將逐字%
放入字符串中,請將其加倍。 我認為問題是%e
接近尾聲-它被0.000000e+000
取代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.