我试图运行以下查询以插入ID随节点加载到表中而自动增加的数量的节点。
但是,每当我运行它时,我都会得到错误ORA-02287: sequence number not allowed here
。
INSERT INTO V1144Engine.T_NODES VALUES
(
(SELECT V1144ENGINE.S_PK_NODES.NEXTVAL FROM dual),
1,
'Chemistry of Life',
0,1,
SYSDATE,
NULL,
'CON.3.1',
NULL
);
我试过运行
SELECT V1144ENGINE.S_PK_NODES.NEXTVAL from dual
这工作正常,并返回我想要的号码。
我该如何解决?我正在Oracle 11g上运行。
如果我仍然可以在电子表格中进行查询,并且查询仍然可以在一行上运行,那也将不胜感激。
最佳答案
不需要内部SELECT
。简单地
INSERT INTO V1144Engine.T_NODES
VALUES(V1144ENGINE.S_PK_NODES.NEXTVAL,
1,
'Chemistry of Life',
0,
1,
SYSDATE,
null,
'CON.3.1',
null);
但是,通常,您希望在
INSERT
语句中列出要为其提供值的列。这不仅可以记录列,以便将来的开发人员不必查找表中列的顺序,而且还可以在将来将新列添加到表中时为您提供保护。INSERT INTO V1144Engine.T_NODES( <<list of columns>> )
VALUES(V1144ENGINE.S_PK_NODES.NEXTVAL,
1,
'Chemistry of Life',
0,
1,
SYSDATE,
null,
'CON.3.1',
null);
关于sql - sql中的序列错误。此处不允许使用序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267418/