Dat zal niet werken. RETURNING
clausule kan niet worden gebruikt zoals u het doet, d.w.z.
insert into t (id, my_pk)
select some_id, your_function from ...
returning into v_output
maar zou werken als u VALUES
. invoegde , als
insert into t
values (id, your_function)
returning my_pk into v_output
Het betekent dat je die code moet herschrijven, of een oplossing moet zoeken beschreven in teruggeven met insert..select artikel (geschreven door Adrian Billington).
Trouwens, zou een gewone Oracle-reeks niet geschikt zijn voor uw doel? Zal niet gapless zijn, maar zou eenvoudig en effectief zijn. Let op de prestaties bij het invoeren van enorme hoeveelheden gegevens, met behulp van uw oplossing.
BTW #2, wat is het doel van de laatste regel in je functie? U gebruikt nooit N_VALUE.