Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Escreva uma instrução de inserção com a cláusula select retornando id no oracle


Isso não vai funcionar. RETURNING cláusula não pode ser usada da maneira que você está fazendo, ou seja,
insert into t (id, my_pk)
select some_id, your_function from ...
returning into v_output

mas funcionaria se você inserisse VALUES , Como
insert into t
values (id, your_function)
returning my_pk into v_output

Isso significa que você terá que reescrever esse código ou procurar uma solução alternativa descrito em retornando com insert..select artigo (escrito por Adrian Billington).

BTW, uma sequência comum do Oracle não serviria para o seu propósito? Não será sem lacunas, mas seria simples e eficaz. Cuide do desempenho ao inserir uma grande quantidade de dados, usando sua solução.

BTW # 2, qual é o propósito da última linha em sua função? Você nunca usa N_VALUE.