我是Apex的新手,我正在尝试在“SQL工作坊”中创建一个表格'使用DATETIME作为类型,但它说这是一个无效的数据类型,这是我的代码:
CREATE TABLE Incidente(
NumReporte INTEGER NOT NULL,
Fecha DATETIME NOT NULL,
Tipo CHAR(20) NOT NULL,
Lugar CHAR(40) NOT NULL,
Comentarios CHAR(100),
MatriculaRep VARCHAR(9)NOT NULL,
PRIMARY KEY(NumReporte),
FOREIGN KEY(MatriculaRep) REFERENCES Persona(Matricula)
)
答案 0 :(得分:2)
首先,datetime
不是Oracle中的数据类型。 date
包含第二个的日期和时间组件。 timestamp
增加了存储小数秒的功能。 timestamp with time zone
也允许您存储时区。
其次,您不想声明列char(20)
,char(40)
或char(100)
。当几乎可以肯定你没有为每一行提供那么多数据时,强迫Oracle在每行的comentarios
列中存储100个字节的评论数据是没有意义的。使用varchar2
不会受到任何惩罚,因此您基本上总是希望使用varchar2
。有些人会建议完全放弃char
。当基础数据确实是固定宽度时(即单个字符标志列,两个字符的状态代码等),其他人将允许短char
列。