Du kan använda en bieffekt av infoga alla multi-table infoga syntax för detta:
insert all
into job (jobid, fileid, jobname)
values (jobidsequence.nextval, fileid, jobname)
into reference (jobid, reffileid)
values (jobidsequence.nextval, reffileid)
select 4660 as fileid, 'name' as jobname, 4391 as reffileid
from dual;
2 rows inserted.
select * from job;
JOBID FILEID JOBNAME
---------- ---------- ----------
42 4660 name
select * from reference;
JOBID REFFILEID
---------- ----------
42 4391
Från begränsningarna:
Jag använder helt klart en sekvens i värdena
klausul, så den första meningen verkar inte riktigt korrekt; men du kan inte använda den i select
del. (Jag är inte 100 % säker på om det kan användas i värdena
i alla versioner, men dokumentationen är lite missvisande i alla fall och motsäger sig själv).
Så jag drar fördel av det faktum att eftersom det är ett enda uttalande, hänvisar de två till nextval
få samma nummer, som den tredje meningen säger, så samma sekvensvärde används i båda tabellerna.