【发布时间】:2017-06-06 20:55:04
【问题描述】:
当我试图在 SQL Developer 中创建这个表时
CREATE TABLE CARTECREDIT
(
forfaitID INTEGER,
nomForfait VARCHAR(13) NOT NULL ,
cout NUMBER(10,4),
locationMax SHORTINTEGER NOT NULL,
dureeMax SHORTINTEGER NOT NULL,
PRIMARY KEY (forfaitID)
);
我正面临此错误消息
错误报告 -
ORA-00902: 无效的数据类型
00902. 00000 - “无效数据类型”
*原因:
*行动:
SQL Developer 似乎无法识别SHORTINTEGER,因为它们没有以蓝色突出显示
但是根据文档Oracle Documentation SHORTINTEGER 是一个真正的数据类型
我做错了什么?
【问题讨论】:
-
简单评论一下在 Oracle 中使用 INTEGER、SMALLINT 等。有人会认为对于数据类型 INTEGER,Oracle 将使用整数运算的硬件实现。 没有。无论您声明什么数据类型,Oracle 都会对所有算术使用库函数,因此使用 INTEGER 实际上效率低下,因为它需要先转换为 NUMBER,然后再转换回 INTEGER。这种安排远非最佳(甲骨文的想法是什么?),但这就是我们所处的位置。如果您想强制数据为整数,请使用
NUMBER(..., 0)并检查约束。
标签: sql oracle create-table