Zu allererst und da, was Sie den Aufruf einer Funktion, die Wert zurückgibt, ich bin nicht sicher, dass Sie einen anonymen Block benötigen (dh BEGIN
/END
) und Sie können einfach die Funktion mit dem Parameter Empfangs aufrufen der von der Funktion zurückgegebene Wert (wie Sie es getan haben) und fügen Sie (wenn die Sprache es erlaubt) die Klausel INTO
hinzu.
Zweitens ist die Reihenfolge der Parameter übergeben wird (dh @InputPara, @OutputPara
) muss die Reihenfolge der ?
übereinstimmen, dass die Aussage sollte in Ihrem Fall bedeutet sein (Ihre Syntax, nicht die, die ich verwende ich vorgeschlagen):
EXECUTE ('BEGIN ? := Package.MyFunction(?,?); END;',
@OutputPara OUTPUT ,
@InputPara_1 ,
@InputPara_2 ) AT linked ;
[Beachten sie, dass zwei Parameter an die Funktion übergeben wird ((?,?)
).]
was Ihre Frage (Art der @OutputPara
) sollte es die gleiche Art von der Funktion zurückgegeben werden wird (was aus Deine Frage kann ich nicht beurteilen).
Welcher Datentyp wird von 'Package.MyFunction (?,?)'? – FDavidov
was ist Datentyp ich muss für @OutputPara – JimmyN
setzen Siehe meine Antwort unten (in wenigen Minuten). – FDavidov