我正在尝试在Oracle SQL Developer中创建一个表,但是我收到错误ORA-00902。
这是我创建表格的架构
CREATE TABLE APPOINTMENT(
Appointment NUMBER(8) NOT NULL,
PatientID NUMBER(8) NOT NULL,
DateOfVisit DATE NOT NULL,
PhysioName VARCHAR2(50) NOT NULL,
MassageOffered BOOLEAN NOT NULL, <-- the line giving the error -->
CONSTRAINT APPOINTMENT_PK PRIMARY KEY (Appointment)
);
我做错了什么?
提前致谢
答案 0 :(得分:8)
最后我听说oracle中没有boolean
类型。请改用number(1)
!
答案 1 :(得分:4)
Oracle不支持表列数据类型的布尔值。您应该使用CHAR(1)(Y / N)
上查看更多信息答案 2 :(得分:4)
Oracle在架构级别不支持boolean
数据类型,但PL / SQL块支持它。按模式级别,我的意思是您不能创建类型为boolean
的表列,也不能创建其中一列为boolean
的嵌套表类型的记录。但是,您可以在PL / SQL中享有这种自由,您可以使用布尔列创建记录类型集合。
作为一种解决方法,我建议使用CHAR(1 byte)
类型,因为只需要一个字节来存储您的值,而不是NUMBER
格式的两个字节。在Oracle Docs上阅读有关数据类型和大小here的更多信息。
答案 3 :(得分:0)
答案 4 :(得分:0)
当使用实体类创建架构时,定义如下布尔值会有所帮助
<块引用>@Column(columnDefinition = "number default 0")
private boolean picked;