簡體   English   中英

Perl中DBI模塊中的SQL錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM