使用perl在Oracle中多次查询只返回第一个查询

时间:2013-03-18 21:57:45

标签: database oracle perl dbi data-dumper

注意:我已经更正了变量差异,它确实从第一组打印查询,但它从第二组中没有返回任何内容。如果我使用第二套只有它可以工作。

在下面的代码中,我有some_array,它是数组的数组,数组包含像name这样的文本。所以     @ some_array =([sam,jon,july],[Mike,Han,Tommy],[angie,sita,lanny]); 现在,当我查询名单时,像七月七日那样。第一个和迈克·汉姆·汤米' 。只有执行返回第一个列表中的结果,其他是undef。我不知道为什么会得到任何帮助。

my $pointer;
my $db = $db->prepare_cached("
        begin
                :pointer := myFun(:A1);
        end;
                ") or die "Couldn't prepare stat: " . $db->errstr;
$db->bind_param_inout(":pointer",\$pointer,0,{ ora_type => ORA_RSET });

for (my $i=0; $i < @some_array ; $i++) {
        my @firstarray = @{$some_array[$i]};
        my $sql = lc(join(" ", @firstarray));
        print "<pre>$sql</pre>\n";
        $db->bind_param(":A1",$sql);
        $db->execute();
        print "<pre>".Dumper($db->execute())."</pre>\n";
 }

1 个答案:

答案 0 :(得分:2)

就像每个人都在the last question you asked上告诉你的那样,用括号初始化数组,而不是嵌套括号。

@some_array= ([sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny])

@some_array= [[sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]]

你也可以从包括

中受益匪浅
use strict;
use warnings;

位于所有程序的顶部。这会抓住您尝试初始化@some_array的奇怪方式,并且它会捕获您对@sql@query的不一致使用情况。 更新$sdh以及$db$dbh