oracle-databaseora-00984

oracle error, column not allowed here


I haven't used Oracle for a while so I'm a bit rusty.

This is my table:

create table calendar(
username VARCHAR2(12),
content VARCHAR2(100),
dateContent DATE,
type CHAR(3) CHECK (type IN ('PUB', 'PRV')));

But when I try to insert a value like this:

insert into calendar
(username, content, dateContent, type) 
values
(chris, assignment due, to_date('01-OCT-2010 13:00','DD-MON-YYYY HH24:MI'), PUB)
/

I am getting:

ORA-00984: column not allowed here

pointing to the type column at the end. I have a feeling I'm not getting something right with the DATE field as I've never really used it.

What have I done wrong?


Solution

  • You need to put quotes round the varchar2 values

    Something like

    insert into calendar(username, 
                         content, 
                         dateContent, 
                         type) 
      values('chris', 
             'assignment due', 
             to_date('01-OCT-2010 13:00','DD-MON-YYYY HH24:MI'), 
             'PUB');