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

Database 在Oracle中使用perl多次查询只返回第一个查询,database,oracle,perl,dbi,data-dumper,Database,Oracle,Perl,Dbi,Data Dumper,注意:我已经纠正了变量的差异,它确实打印了第一个集合中的查询,但是它没有从第二个集合返回任何内容。如果我只使用第二套,它就可以工作 @some_array= ([sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]) @some_array= [[sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]] 在下面的代码中,我有一些_数组,它是数组的数组,数组包含类似于名称的文本。所以

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

@some_array= ([sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny])
@some_array= [[sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]]
在下面的代码中,我有一些_数组,它是数组的数组,数组包含类似于名称的文本。所以 @some_数组=([sam,jon,july],[Mike,Han,Tommy],[angie,sita,lanny]); 现在,当我查询像“山姆·乔恩·七月”和“迈克·汉·汤米”这样的名单时。只有从第一个列表返回结果的execute未定义。我不知道为什么我们会感激任何帮助

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";
 }
my$pointer;
my$db=$db->prepare_cached(“
开始
:指针:=myFun(:A1);
结束;
)或死亡“无法准备状态:”$db->errstr;
$db->bind\u param\u inout(“:pointer”,\$pointer,0,{ora\u type=>ora\u RSET});
对于(我的$i=0;$i<@some_数组;$i++){
my@firstarray=@{$some_数组[$i]};
my$sql=lc(join(“,@firstarray));
打印“$sql\n”;
@some_array= ([sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny])
@some_array= [[sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]]
$db->bind_参数(“:A1”,$sql); $db->execute(); 打印“.Dumper($db->execute())。”\n;
@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

这不可能是你真正的代码,是吗?为什么
@sql
$sql
已初始化但未使用,而
@query
$query
已使用但未初始化?什么是
$db
$dbh
$sdh
以及为什么它们的使用看起来如此不一致?今后,请尽更大努力发布编译、运行和演示您遇到的问题的代码。对于变量差异,我很抱歉,我已经更正了它。它也会打印结果,但对于第一个集合,只有第二个集合返回undef。如果我使用第二个集合作为第一个集合,那么它将只返回第二个集合。所以问题是它只返回第一组。我已经按照你说的进行了编辑,也使用了严格的警告,但没有任何帮助。
@some_array= ([sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny])
@some_array= [[sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]]