【发布时间】:2021-04-30 21:38:52
【问题描述】:
我正在尝试创建一个名为“Order”和这些数据类型的表(注意:我没有一个名为 Order 的表,我尝试创建其他表并且它有效)并且名称是:
create table Order(
Onum Number(8) PRIMARY KEY,
Odate Date,
Otime Time(7),
Delivered_on_time char(1));
错误是:
无效的表名
所以我尝试将其命名为 Ordeer 并重试,它给了我这个错误:
ORA-00907: missing right parenthesis
-
Otime Time(7), -
Delivered_on_time char(1) - );
怎么办?请帮忙
【问题讨论】:
-
ORDER是保留字,参见en.wikipedia.org/wiki/SQL_reserved_words。除非以"ORDER"分隔,否则不能用作表名。但我会考虑ORDERS。 -
Oracle 还列出了reserved words in the documentation。它列出了data types;
time不是其中之一。没有时间类型(无论如何您都可以使用),但您不需要,因为日期包括时间组件。 -
Oracle 没有
TIME数据类型。 -
@AlexPoole 您可以使用
INTERVAL DAY TO SECOND数据类型来表示时间。但在这种情况下,由于DATE有一个时间组件,那么 OP 应该不需要尝试做类似的事情。 -
也不推荐使用
CHAR- 请改用VARCHAR2。
标签: sql oracle oracle-apex