首页 > 解决方案 > 插入语句 Oracle

问题描述

这是我的桌子

create table reservations (
    ResID int NOT NULL,
    GuestID int,
    HotelID int,
    Check_in DATE,
    Check_out DATE,
    RoomType varchar2(15),
    Price Dec(8,2),
    PRIMARY KEY (ResID),
    CONSTRAINT FK_GuestIDX FOREIGN KEY(GuestID) REFERENCES Guests(GuestID),
    CONSTRAINT FK_HotelID FOREIGN KEY(HotelID) REFERENCES Hotel(HotelID)
);

表创建没有问题。现在我试图填充表格

这是我的插入语句

insert into reservations (1, 1, 2, '17-DEC-2018', '21-DEC-2018', 'Suite', 87.03);

这是我得到的错误

ORA-00928: 缺少 SELECT 关键字

这可能是什么原因?

标签: sqloraclesql-insert

解决方案


或失踪values

insert into reservations
    values (1, 1, 2, '17-DEC-2018', '21-DEC-2018', 'Suite', 87.03);

也就是说,我建议将其写为:

insert into reservations (ResID, GuestID, HotelID, Check_in, Check_out DATE, RoomType, Price)
    values (1, 1, 2, DATE '2018-12-17', DATE '2018-12-21', 'Suite', 87.03);

笔记:

  • 列出 . 之后的列insert。这可以真正防止难以调试的错误。
  • 这使用DATE关键字来引入日期常量。

您也可以使用以下方式编写SELECT

insert into reservations (ResID, GuestID, HotelID, Check_in, Check_out DATE, RoomType, Price)
    select 1, 1, 2, DATE '2018-12-17', DATE '2018-12-21', 'Suite', 87.03
    from dual;

推荐阅读