通过Perl中的fucntions参数将值传递给查询

时间:2015-09-24 15:53:11

标签: oracle perl

我有一个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)

1 个答案:

答案 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];
}