我有一个perl代码,用于查询Oracle 11G数据库以从表中提取“值”的数量。
$sqlStatement="SELECT count(values) FROM Table WHERE values IN ('value1','value2','value3',.... 'valuen')"
如何通过子例程的参数传递查询中的值?
例如:
$sqlStatement="SELECT count(values) FROM Table WHERE values IN ($values)
subroutine($values)
答案 0 :(得分:0)
使用数组而不是标量传递值会不会更有意义吗?
count_values(@values);
然后子程序可以这样开始:
sub count_values {
my @values = @_;
my $sql = 'select count(values) from table where values in (';
$sql .= join ',', ('?') x @values;
$sql .= ')';
my $sth = $dbh->prepare($sql);
$sth->execute(@values);
my $count = ($sth->fetchrow_array)[0];
}