Mahlzet,
Kollege Goppelt-Langer hat Recht: ein Beispielaufruf mitsamt Fehlermeldung wäre hilfreich. Aber:
ich habe folgende Funktion erstellt, die eine Zahl übergeben
bekommt und per Sequenz die Zahl um den Wert 1 erhöht werden
soll.
Das ist komplett daneben. Eine kann man nicht per Sequenz erhöhen. Man erhöht die Zahl, und gut ist. Wenn eine Sequenz erhöht wird, wird nur sie selbst erhöht.
create or replace function SPGetSeqNumber( aNumber out number )
return number is
Result number;
begin
Result := SeqNumber.Nextval ;
return(Result);
end SPGetSeqNumber;
Ich habe drei Passagen fettgemacht.
Erstens, der Übergabeparameter aNumber: wenn Du ihn als OUT deklarierst, dann willst Du ihn innerhalb der Prozedur mit einem Wert belegen, der vom aufrufenden Programm ausgewertet werden soll. Das willst Du aber wahrscheinlich nicht; Du willst wohl, daß die Funktion einen Wert zurückgibt, und das ist was ich an zweiter Stelle hervorgehoben habe.
Drittens, da steht nur „SeqNumber.Nextval“ - da wird eine Sequence erhöht, dies hat keinen Effekt auf etwaige Parameter.
Gruß
Sancho