我正在从主脚本运行这个子程序。
print "parameter passed: $_[0]";
my $connect_string = 'test/test@testdb';
my $sqlplus_settings = '';
my $task = '';
my $result = qx { sqlplus $connect_string << EOF
$sqlplus_settings exec {pkgname.procedure($_[0], 'abc',$task);
#exit;
EOF
当从主脚本{sub($var)}
调用它时,它将使用输入参数打印第一行。但程序没有得到执行。
答案 0 :(得分:0)
正如用户@choroba在上面的评论中提到的,恕我直言的最佳方式是使用Perl的DBI模块。
以下是调用可与Oracle一起使用的存储过程的示例:
$dbh->do("BEGIN your_procedure; END;");
这是一个帮助您开始使用DBI模块的链接:
HTH
答案 1 :(得分:0)
对我来说这个解决方案很好:
my $execute=q~BEGIN your_procedure; END~;
my $sth= $dbh->prepare($execute);
$sth->execute()