ORA-00936: Oracle 11g 中的 DELETE 语句和视图缺少表达式
Posted
技术标签:
【中文标题】ORA-00936: Oracle 11g 中的 DELETE 语句和视图缺少表达式【英文标题】:ORA-00936: missing expression for DELETE statement & VIEW in Oracle 11g 【发布时间】:2020-04-22 00:52:56 【问题描述】:当我尝试在 Oracle 11g 中创建 DELETE 语句和 VIEW 时,收到消息“ORA-00936:缺少表达式”。
删除声明: 这是创建的原始表:
CREATE TABLE SHIPMENT
(
ShipmentID INT PRIMARY KEY,
ShipperID INT NOT NULL REFERENCES SHIPPER(ShipperID),
ShipperInvoiceNumber INT NOT NULL UNIQUE,
Origin VARCHAR2(30) NOT NULL,
Destination VARCHAR2(30) NOT NULL,
DepartureDate DATE,
ArrivalDate DATE
);
这是我要使用的 DELETE 语句:
DELETE SHIPMENT WHERE ShipmentID = <ShipmentID TO DELETE>;
查看: 这是我要创建的视图:
CREATE VIEW PurchaseSummaryView AS
SELECT PurchaseID, [Date], Description, AND PriceUSD
FROM PURCHASE_ITEM;
这是为它创建的表:
CREATE TABLE PURCHASE_ITEM
(
PurchaseItemID INT PRIMARY KEY,
StoreID INT NOT NULL REFERENCES STORE(StoreID),
"Date" DATE NOT NULL,
Description VARCHAR2(30) NOT NULL,
Category VARCHAR2(30),
PriceUsed NUMBER(15, 2)
);
我并不像我想的那样熟悉 Oracle 11g。我犯了什么简单的错误?
【问题讨论】:
[DATE]
不是 Oracle 语法。
给出错误所指的行可能会有所帮助。并在视图创建语句中:“ CREATE VIEW PurchaseSummaryView AS SELECT PurchaseID, [Date], Description, AND PriceUSD FROM PURCHASE_ITEM;” “AND”看起来很奇怪,可能你可以删除它
【参考方案1】:
请创建如下视图
CREATE OR REPLACE VIEW PurchaseSummaryView AS
SELECT PurchaseID, "Date", Description, PriceUSD
FROM PURCHASE_ITEM;
而且delete
声明应该没问题
【讨论】:
以上是关于ORA-00936: Oracle 11g 中的 DELETE 语句和视图缺少表达式的主要内容,如果未能解决你的问题,请参考以下文章
Oracle CASE WHEN - ORA-00936:缺少表达式
带有 ORA-00936 的 SQL 查询实例:缺少表达式错误
Oracle 数据库中执行SQL语句 出现 [Err] ORA-00936: 缺失表达式! 但在SQL server 中可以使用 大家帮帮忙