【问题标题】:ORA-00926 Missing Values KeywordORA-00926 缺少值关键字
【发布时间】:2019-11-18 21:15:06
【问题描述】:

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 关键字

【问题讨论】:

  • 检查你的语法。 INSERT INTO 语法为 INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);

标签: oracle sql-insert


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    不要依赖 Oracle 的隐式转换。只要它现在可以工作,它迟早会失败(当 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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      相关资源
      最近更新 更多