perl中DBI模块中的SQL错误

Sun*_*nny 1 sql perl module dbi


运行此查询时,我没有得到任何输出.我无法理解.任何人都可以帮助我.在这种情况下$ 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";  
}
Run Code Online (Sandbox Code Playgroud)

Eug*_*ash 5

您需要%e使用额外的百分号进行转义,否则sprintf将其解释为转换说明符(科学计数法中的浮点数).

sprintf "select sum(f.expenditure) ... like '%%e' ", $lastfiscyear;
Run Code Online (Sandbox Code Playgroud)

详情perldoc sprintf请见.