sub executeStoredProcTestInfo { $input_parameters = shift; $num_of_output_cursors = shift; $stored_proc_name = shift; $schema = "LOGIN"; $password = "PSWD"; $database = "dbi:Oracle:DBNAME"; $dbh = createConnectionToDB($database, $schema, $password); $sql.= "BEGIN $stored_proc_name("; for ($i=1; $i<=scalar(@$input_parameters)+scalar(@$num_of_output_cursors); $i++) { if($i!= scalar(@$input_parameters)+scalar(@$num_of_output_cursors)) { $sql.=":temp_".$i; $sql.=","; } else { $sql.=":temp_".$i; } } $sql.="); END;"; #print $sql,"\n"; $sth = $dbh->prepare($sql); $counter = 1; @var_size_array = @$num_of_output_cursors; @var_input_array = @$input_parameters; foreach $item (@var_input_array) { $var = $counter - 1; $code = "\$sth->bind_param\(\":temp_$counter\", $item \)\;"; eval $code ; #print $code, "\n"; $counter++; } $counter_set = $counter; foreach $item (@$num_of_output_cursors) { $code="\$sth->bind_param_inout(\":temp_$counter\", \\\$temp_$counter, 0, \{ ora_type => ORA_RSET \})\;"; eval $code ; #print $code, "\n"; $counter++; } $sth->execute(); foreach $item (@$num_of_output_cursors) { $code = "\$table = \$temp_$counter_set->fetchall_arrayref\;"; eval $code ; #print $code, "\n"; $counter_set++; } $sth->finish; endConnection($dbh); return $table; }