Ich führe diese Subroutine aus dem Hauptskript.Aufrufen einer gespeicherten Prozedur von Perl
print "parameter passed: $_[0]";
my $connect_string = 'test/[email protected]';
my $sqlplus_settings = '';
my $task = '';
my $result = qx { sqlplus $connect_string << EOF
$sqlplus_settings exec {pkgname.procedure($_[0], 'abc',$task);
#exit;
EOF
Wenn es aus dem Hauptskript {sub($var)}
genannt zu werden, ist es den Druck der ersten Zeile mit dem Eingangsparameter. Aber die Prozedur wird nicht ausgeführt.
Es gibt keine _subroutine_ in Ihrem Code. – simbabque
Verwenden Sie [DBI] (http://p3rl.org/DBI), um mit einer Datenbank zu sprechen. – choroba
Fügen Sie 'use strict' und' use warnings' hinzu. Aber auch ohne, sollte es Ihnen über die Syntaxfehler mit Ihrem HEREDOC erzählen. – simbabque