Guten Tag zusammen,
ich sitze an einem Problem, das nicht nur Perl betrifft, sondern auch PL/SQL. Hoffentlich kann ich hier trotzdem hilfreiche Hinweise erhalten.
Also: Ich habe ein Perlskript, dass eine bestimmte PL/SQL-Funktion aufruft. Um zu sehen, was sich getan hat, gibt diese Funktion die Zahl der betroffenen Zeilen in der DB-Tabelle(Oracle) zurück (bzw. soll sie zurückgeben):
my $SQL = "BEGIN :rows := SLP_IMPORT.IMPORT2RESULTS; END;";
my $sth = $dbh -> prepare($SQL);
$sth -> bind_param_inout(":rows", \$zeilenanzahl, 20);
$sth -> execute();
Die PL/SQL-Funktion gibt einen Integer-Wert zurück, der in meinem Testszenario zunächst immer genau 100 ist.
Rufe ich die Funktion für sich auf, also nicht über das Perlskript, funktioniert das auch wunderbar.
Aber mein Aufruf über Perl endet in einem Fehler: ORA-01722 Ungültige Zahl. Bzw. ORA-06512: ....DBD Error: OCIStmtExecute ......:rows=undef
Die PL/SQL-Funktion wird auch nicht ausgeführt.
Die Fehlerbehebung auch eigene Faust ergab bisher nichts. Ich hab als Datentyp noch Numbers probiert und auch die Speicherangabe (also die 20 siehe oben) im Perlaufruf erhöht. Keine Besserung :(
Bitte! Helft mir!
Danke
Pernox77