Multiplos inserts no Oracle

1 resposta Resolvido
oracleoracle11
A

Eu preciso criar um script SQL (de preferencia SQL nativo do Oracle sem usar PL/SQL ou procedures/functions). Este script deve fazer 3 inserts onde eu preciso utilizar o mesmo id gerado por duas sequencias

Seria algo parecido com isso

1 INSERT => INSERT INTO tabelaA (max(id),valor) - este insert nao tem sequence para o id mas eu preciso utilizar o id inserido no segundo insert - apenas um registro


2 INSERT => INSERT INTO tabelaB(seq1.nextval, id, valor, valor2,…)
este insert usa o id gerado no insert 1 e o nextval da seq1, muitos registros, resultado de um select


3 INSERT ==> INSERT INTO tabelaC (seq1.nextval, seq2.nextval)
este insert usa o nextval da seq1 e o nextval da seq2, muitos registros, resultado de um select

Consegui fazer usando o RETURNING INTO no INSERT1 e jogando em uma variavel que depois eu uso no INSERT2 Entretando o INSERT2 é feito como resultado de um SELECT parece que eu precisaria usar um BULK COLLECTION outra alternativa seria usar um INSERT ALL, mas eu teria que fazer o INSERT1 separado Se alguem tiver uma idéia já será de muita ajuda

Estou usando Oracle 11

1 Resposta

A
Solucao aceita

Bom, já que ninguem respondeu vou dizer como eu resolvi

Criei uma procedure usando cursor. O cursor me traz a lista de ids inseridos pela sequence na aprimeira tabela, depois eu vou inserindo nas outras

Criado 28 de setembro de 2016
Ultima resposta 29 de set. de 2016
Respostas 1
Participantes 1