-1

注: 変数の違いを修正し、最初のセットからクエリを出力しますが、2 番目のセットからは何も返しません。2 番目のセットのみを使用すると、機能します。

以下のコードでは、名前のようなテキストを含む配列の配列である some_array があります。@some_array= ([サム、ジョン、ジュリー]、[マイク、ハン、トミー]、[アンジー、シタ、ラニー]); ここで、最初に '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";
 }
4

1 に答える 1

2

あなたが尋ねた最後の質問で誰もがあなたに言ったように、ネストされた括弧ではなく括弧で配列を初期化してください。

@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

于 2013-03-18T22:06:56.690 に答える