Oracle从序列中加入nextval

于尔根

假设

Table TARGET {
    ID IDENTITY ...,
    ...
    JOB_NO NUMBER
}

我的问题是,如何生成JOB_NO(通过序列),以便在语句中提交的所有插入都具有相同的job_no。

输出应该类似于该插入stmt的第n次执行。

ID  ... JOB_NO
1   ... 123
2   ... 123
3   ... 123

以下显然不起作用。但是正确的Oracle语法是什么?

INSERT INTO TARGET SELECT A.*, B.* FROM my_source_table A, (SELECT x.nextval from dual) B

非常感谢Juergen

Kaushik nayak

您可以一次NEXTVAL为每个这样的插入选择,使递增sequence,然后CURRVAL在中使用INSERT

假设这是您的顺序

create sequence seq START WITH 123 ;

请务必在中指定列名称,INSERT以免造成混淆,请勿使用select * from

select seq.NEXTVAL FROM DUAL;
INSERT INTO TARGET(JOB_NO,col1,col2,..) 
SELECT seq.CURRVAL, a.col1,a.col2 FROM my_source_table A, ..

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章