代码:
CREATE TABLE PERSONNE1 (
NUMP NUMBER,
PRENOM VARCHAR2(25),
NOM VARCHAR2(25),
DATENAIS DATE,
CONSTRAINT PK_NUMP PRIMARY KEY (NUMP)
);
create sequence numpersonne
start with 0
increment by 2
minvalue -1;
SQL> insert into PERSONNE1 (numpersonne.nextval, "Jack", "Nicholson", to_date('04/22/1937','dd/mm/yyyy'));
insert into PERSONNE1 (numpersonne.nextval, "Jack", "Nicholson", to_date('04/22/1937','dd/mm/yyyy'))
错误:
第1行的错误:
ORA-00917:缺少逗号
答案 0 :(得分:3)
SQL中的字符串文字用单引号('
)表示,而不是双引号("
)。
更重要的是,正如评论中所述,您错过了values
关键字:
insert into PERSONNE1
values -- was missing
(numpersonne.nextval,
'Jack', -- Fix the quotes here
'Nicholson', -- And here
to_date('04/22/1937','mm/dd/yyyy'));
编辑:
日期格式也有误 - 您需要切换dd
和mm
。
答案 1 :(得分:2)
您所看到的错误的直接原因是您的错误地点是您的价值观;目前他们(列)列的一部分列表,你不能在其中进行函数调用 - 所以开始括号被标记。这是因为您错过了values
关键字。
正如@Mureinik所说,字符串封闭是单引号,而不是双引号;而且你的日期和月份也错了:
insert into PERSONNE1
values (numpersonne.nextval, 'Jack', 'Nicholson', to_date('04/22/1937','mm/dd/yyyy'));
或使用日期文字来避免混淆的可能性:
insert into PERSONNE1
values (numpersonne.nextval, 'Jack', 'Nicholson', date '1937-04-22');
明确列出您要插入的列:
也是一个好主意insert into PERSONNE1 (NUMP, PRENOM, NOM, DATENAIS)
values (numpersonne.nextval, 'Jack', 'Nicholson', date '1937-04-22');