in reply to Generic PLSQL Launcher

Just build your statement based upon the arguments... the prepare statement is just a string. e.g.
sub run_plsql_statement { my $package_name = shift; my $procedure_name = shift; my @params = @_; my $statement = "BEGIN\n"; $statement .= $package_name.'.' if $package_name; $statement .= $procedure_name; # probably have a better way to do the map... $statement .= '('.( join(',',( map { '?' } @params )) ).')' if @para +ms; $statement .= ";\nEND;\n"; }
(code untested - but hopefully gets you started)

I'll let you finish the rest (bindings) :)