Sequence error in sql. Sequence number not allowed here

oracle, oracle11g, sql

Solution

There is no need to have the inner `SELECT`. Simply

INSERT INTO V1144Engine.T_NODES 
  VALUES(V1144ENGINE.S_PK_NODES.NEXTVAL,
         1,
         'Chemistry of Life',
         0,
         1,
         SYSDATE,
         null,
         'CON.3.1',
         null);

In general, though, you want to list the columns that you are providing values for in your `INSERT` statement. That not only documents the columns so that a future developer doesn't have to look up the order of columns in a table, it protects you if new columns are added to the table in the future.

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);

Problem

I am trying to run the following query to insert a number of nodes with an id that auto-increments as nodes are loaded into the table. However I get the error, `ORA-02287: sequence number not allowed here` whenever I run it. ``` 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 ); ``` I have tried running ``` SELECT V1144ENGINE.S_PK_NODES.NEXTVAL from dual ``` This works fine and returns the number that I want. How do I get around this? I am running on Oracle 11g. Also it would be much appreciated if the query were still runnable on one line as I am making these in a spreadsheet and would like to still be able to do so.

Original source