sql >> Databáze >  >> RDS >> Oracle

Napište příkaz insert s klauzulí select vracející id v oracle

To nebude fungovat. RETURNING klauzuli nelze použít způsobem, jakým to děláte, tj.

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

ale fungovalo by to, kdybyste vložili VALUES , jako

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

To znamená, že budete muset tento kód buď přepsat, nebo se podívat na řešení popsané v návrat s insert..select článek (napsal Adrian Billington).

BTW, nevyhovovala by vám obyčejná sekvence Oracle? Nebude bez mezer, ale bude jednoduchý a účinný. Myslete na výkon při vkládání velkého množství dat pomocí vašeho řešení.

BTW #2, jaký je účel posledního řádku ve vaší funkci? Nikdy nepoužíváte N_VALUE.



  1. jak načtu místní soubor v SQL Developer?

  2. Vložte datum a čas do MySQL pomocí ColdFusion

  3. Oracle PIVOT, dvakrát?

  4. Stav zobrazení MySQL – aktivní nebo celkový počet připojení?