Itu tidak akan berhasil. RETURNING
klausa tidak dapat digunakan seperti yang Anda lakukan, yaitu
insert into t (id, my_pk)
select some_id, your_function from ...
returning into v_output
tetapi akan berfungsi jika Anda memasukkan VALUES
, sebagai
insert into t
values (id, your_function)
returning my_pk into v_output
Artinya, Anda harus menulis ulang kode tersebut, atau melihat solusi dijelaskan dalam kembali dengan insert..select artikel (ditulis oleh Adrian Billington).
BTW, bukankah urutan Oracle biasa sesuai dengan tujuan Anda? Tidak akan tanpa celah, tetapi akan menjadi sederhana &efektif. Perhatikan performa saat memasukkan data dalam jumlah besar, menggunakan solusi Anda.
BTW # 2, apa tujuan dari baris terakhir dalam fungsi Anda? Anda tidak pernah menggunakan N_VALUE.