perl中的DBI模块中的SQL错误

  运行此查询时,我没有得到任何输出。我无法理解。任何人都可以帮助我。在这种情况下$ 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 "$totaln";  
}
    
已邀请:
你需要使用额外的百分号来逃避
%e
,否则
sprintf
将其解释为转换说明符(科学记数法中的浮点数)。
sprintf "select sum(f.expenditure) ... like '%%e' ", $lastfiscyear;
有关详细信息,请参阅
perldoc sprintf
。     
请注意,
sprintf
将使用
%
标志作为占位符。如果你想将逐字
%
放入字符串中,请加倍。我认为问题是
%e
接近结束 - 它被替换为
0.000000e+000
。     

要回复问题请先登录注册