注意:我已经更正了变量差异,它确实打印了第一个查询中的查询,但它不返回第二个查询中的任何内容。如果我使用第二套只有它的作品。在Oracle中使用perl查询多次只返回第一个查询
在下面的代码中,我有some_array,它是数组的数组,该数组包含名称等文本。所以 @ some_array =([sam,jon,7月],[Mike,Han,Tommy],[angie,sita,lanny]); 现在,当我查询名单如'sam jon july'和'mike han tommy'时。只有执行返回第一个列表的结果其他人是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";
}
这不可能是你真正的代码,可以吗?为什么'@ sql'和'$ sql'被初始化但未被使用,而@ query和$ query'被使用但未被初始化?什么是'$ db','$ dbh'和'$ sdh',为什么它们看起来不那么使用?今后,请更好地发布编译,运行和演示您遇到的问题的代码。 – mob 2013-03-18 22:24:03
对于变量差异,我很抱歉,我已经纠正它。它也打印结果,但第一组只返回undef。如果我将第二组作为第一组,那么它将仅返回第二组。所以问题是它只返回第一组。 – mysteriousboy 2013-03-19 00:40:23