sql >> Database teknologi >  >> RDS >> Oracle

Skriv en insert-sætning med select-sætning, der returnerer id i oracle

Det vil ikke virke. RETURNING klausul kan ikke bruges som du gør det, dvs.

insert into t (id, my_pk)
select some_id, your_function from ...
returning into v_output

men ville fungere, hvis du indsatte VALUES , som

insert into t
values (id, your_function)
returning my_pk into v_output

Det betyder, at du enten bliver nødt til at omskrive den kode eller se på en løsning beskrevet i retur med insert..select artikel (skrevet af Adrian Billington).

BTW, ville en almindelig Oracle-sekvens ikke passe til dit formål? Vil ikke være hulfri, men ville være enkel og effektiv. Vær opmærksom på ydeevnen, når du indsætter enorme mængder data ved hjælp af din løsning.

BTW #2, hvad er formålet med den sidste linje i din funktion? Du bruger aldrig N_VALUE.



  1. ColdFusion:Ansøgningsmuligheder baseret på rolle?

  2. Sådan administreres MySQL - til Oracle DBA'er

  3. JSON_VALUE() Funktion i Oracle

  4. Mybatis:Kort en del af SQL til HashMap inde i POJO