5

我正在尝试在 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)
);

我究竟做错了什么?

提前致谢

4

5 回答 5

9

最后我听说oracle没有boolean类型。改用number(1)

于 2013-10-22T12:56:48.480 回答
4

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

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

于 2013-10-22T14:34:19.100 回答
4

Oracle 不支持表列数据类型的布尔值。您可能应该使用 CHAR(1) (Y/N)

您可以查看有关此其他答案的更多信息

于 2013-10-22T12:56:29.913 回答
0

我想你得到了一个低于好的结果

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/datatypes.htm#CJACJGBG

于 2013-10-22T12:57:09.703 回答
0

使用实体类创建架构时,如下定义布尔值将有所帮助

@Column(columnDefinition = "number default 0")
private boolean picked;
于 2021-06-07T09:51:02.593 回答