sql >> Database >  >> RDS >> Oracle

Schrijf een insert-instructie met select-clausule die id retourneert in oracle

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.



  1. xampp php 7 Oproep naar ongedefinieerde functies (mysql &odbc)

  2. Is er een manier in MySQL om impliciet een primaire sleutel voor een tabel te maken?

  3. INSERT IGNORE verhoogt de automatische ophogingsteller zelfs als er geen record is toegevoegd?

  4. werkdagen toevoegen in oracle sql