Oracle查询:缺少关键字/括号

时间:2015-04-14 22:39:17

标签: sql oracle

我在unix中执行sql查询。但我没有在查询中识别错误。

CREATE TABLE flights ( route_id NUMBER(10) NOT NULL, depart_timestamp TIMESTAMP WITH TIME ZONE NOT NULL, arrive_timestamp TIMESTAMP WITH TIME ZONE NOT NULL, base_price_usd NUMBER(17,2) NOT NULL CHECK (base_price_usd > cast(0.0 as clob)::money), status_id INTEGER NOT NULL, PRIMARY KEY (route_id, depart_timestamp), FOREIGN KEY (route_id) REFERENCES routes(route_id), FOREIGN KEY (status_id) REFERENCES route_statuses(status_id) );

第2行的错误:

ORA-00905:缺少关键字

ORA-00907:缺少右括号

1 个答案:

答案 0 :(得分:1)

好的,张贴为anwser:

1)使CHECK约束CHECK base_price_usd > 0

2)TIMESTAMP WITH TIME ZONE数据类型不能用作主键。

3){10}在Oracle 10g中实现了TIMESTAMP WITH TIME ZONE。由于您使用的是Oracle 8,因此无法在那里运行。使用DATE类型。

我猜你可以添加一列来存储TIME ZONE。它可以是VARCHAR2并存储值,例如'GMT-6'或其他东西,但我认为不值得,因为最近版本的Oracle可以默认存储它。