Sql 插入序列并选择

Sql 插入序列并选择,sql,oracle,plsql,insert,sequence,Sql,Oracle,Plsql,Insert,Sequence,我试图插入一个表,其中ID是序列中的下一个,其他一些值是从表中提取的。我知道这行不通: INSERT INTO ORDERS(order_id, foo1, foo2, foo3 VALUES(SEQUENCE_ORDERS.nextval,(SELECT foo1, foo2, foo3 FROM bar WHERE X = Y)) 我只是尝试了一下,但我得到了一个

我试图插入一个表,其中ID是序列中的下一个,其他一些值是从表中提取的。我知道这行不通:

INSERT INTO ORDERS(order_id, foo1, foo2, foo3
VALUES(SEQUENCE_ORDERS.nextval,(SELECT foo1, foo2, foo3
                                FROM bar
                                WHERE X = Y))
我只是尝试了一下,但我得到了一个值不够的错误

我想知道正确的语法是什么,以使这项工作。我正在编写一个过程,在Oracle DB中使用PLSQL

我知道select不应该在值内,但如何添加序列?我能想到的唯一选择是在插入时触发,但我不想这样做


编辑:谢谢大家,正如我所理解的,每个人都发了帖子。不知道可以在select中使用序列。

尝试将序列移到select语句。

尝试:

INSERT INTO ORDERS(order_id, foo1, foo2, foo3)
SELECT SEQUENCE_ORDERS.nextval,foo1, foo2, foo3
                                FROM bar
                                WHERE X = Y

@DCookie-LOL,:只赢了你11分secs@DCookie:现在要乖点-dcp是个贼=+1,我会遵从你闪电般的打字技巧,再加上你修复了语法错误too@Thanks伙计们,你们今天真让我抓狂@Null,请记住接受@DCP的回答,别忘了给女服务员小费。有时我只需要输入我遇到的问题,然后突然出现问题。感谢那些回答!
INSERT INTO ORDERS(order_id, foo1, foo2, foo3
SELECT SEQUENCE_ORDERS.nextval, foo1, foo2, foo3
                                FROM bar
                                WHERE X = Y