ORA-00926缺失值关键字

时间:2019-11-18 21:15:06

标签: oracle sql-insert

SQL的初学者,我目前无法运行此插入基本命令。

insert into Project(ProjId,MedicName,Purpose,Start_date,End_date,PI_Id)
insert into Project values('PR003','Medic3','lung','01-Nov-14','31-DEC-20','10101');
  

第2行出现错误:
  ORA-00926:缺少VALUES关键字

2 个答案:

答案 0 :(得分:1)

您的语法错误。您需要写一条语句:

insert into Project(ProjId,MedicName,Purpose,Start_date,End_date,PI_Id)
values('PR003','Medic3','lung','01-Nov-14','31-DEC-20','10101');

答案 1 :(得分:0)

除了错误的语法(您已经被告知)外,该表中的某些列似乎是DATE数据类型,我建议您不要在其中输入字符串,而要输入日期。因为'01-Nov-14''31-DEC-20' 都是字符串。

不要依赖Oracle的隐式转换。只要它现在 now 可行,它迟早就会失败(当NLS设置更改时),不一定在此数据库上,而是在其他数据库上。例如,您的值将不适合我的数据库,因为我的格式以及语言和语言都不同(我们不使用英文名称)。掌控一切。

您可以

  • 使用日期文字(我用于start_date
  • TO_DATE函数与适当的格式掩码一起使用(下面的end_date

类似这样的东西:

INSERT INTO project (projid,
                     medicname,
                     purpose,
                     start_date,
                     end_date,
                     pi_id)
     VALUES ('PR003',
             'Medic3',
             'lung',
             DATE '2014-11-01',                      --> this
             TO_DATE('31.12.2020', 'dd.mm.yyyy'),    --> this
             '10101');