准备命令不适用于 DBI

Vol*_*ine 0 sql perl dbi

我正在尝试这样做,但它不起作用

 my $sql2 = "SELECT CODE_ID,NAME_CODE,SUM(INR_COL + OUT_COL) AS \"TOTAL SUM\" FROM nwsa WHERE trunc(REPORT_DATE) = to_date('?','dd-mm-yyyy')AND CODE_ID IN (?,?,?,?,?,?,?,?,?,?,?)GROUP BY CODE_ID,NAME_CODE"; 
     $sth ->prepare($sql2);
     my $t= "06-01-2017";

     $sth->execute($t,'A12A','A12B','A12C','A12D','A12E','A12EB','A12F','A12G','A12I','A12O','A12U');
Run Code Online (Sandbox Code Playgroud)

Dr.*_*che 5

你有:

$sth ->prepare($sql2);
Run Code Online (Sandbox Code Playgroud)

你需要:

my $sth = $dbh->prepare($sql2);
Run Code Online (Sandbox Code Playgroud)

https://metacpan.org/pod/DBI#prepare

还要考虑prepare_cached方法,具体取决于您实际在做什么:

https://metacpan.org/pod/DBI#prepare_cached