15

我有一段时间没有使用 Oracle,所以我有点生疏了。

这是我的桌子:

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

但是当我尝试插入这样的值时:

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

我正进入(状态:

ORA-00984: column not allowed here

指向末尾的类型列。我有一种感觉,因为我从未真正使用过 DATE 字段,所以我没有得到正确的结果。

我做错了什么?

4

2 回答 2

21

您需要在 varchar2 值周围加上引号

就像是

insert into calendar(username, 
                     content, 
                     dateContent, 
                     type) 
  values('chris', 
         'assignment due', 
         to_date('01-OCT-2010 13:00','DD-MON-YYYY HH24:MI'), 
         'PUB');
于 2010-10-13T14:12:35.053 回答
3

会不会是因为typeOracle 保留字

看起来这不是问题。阅读 APC 的评论。

我不会删除此答案,因为我发现该评论很有用。

于 2010-10-13T14:10:09.207 回答