布尔值给出无效的数据类型 - Oracle

rak*_*isu 4 sql oracle

我正在尝试在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)
);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

提前致谢

rkh*_*rkh 8

最后我听说boolean甲骨文中没有类型.使用number(1),而不是!

  • 只有在SQL中,在PLSQL中才有 (2认同)

Rac*_*cha 5

Oracle 不支持boolean模式级别的数据类型,尽管它在 PL/SQL 块中受支持。在架构级别,我的意思是您不能创建类型为 as 的表列boolean,也不能创建其中一列为 的记录的嵌套表类型boolean。不过,您在 PL/SQL 中拥有这种自由,您可以在其中创建带有布尔列的记录类型集合。

作为一种解决方法,我建议使用CHAR(1 byte)类型,因为它只需要一个字节来存储您的值,而不是两个字节来存储NUMBER格式。在 Oracle 文档中阅读有关数据类型和大小的更多信息。