2013-10-22 31 views
2

我想在Oracle SQL Developer中创建一个表,但我收到错误ORA-00902。布尔给予无效的数据类型 - Oracle

这里是我的表创建

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

受支持的数据类型:http://docs.oracle.com/cd/E16655_01/server.121/e17209/sql_elements001.htm#i45441 –

+0

请参阅此处以了解如何执行操作,因为表中没有布尔类型:http://stackoverflow.com/questions/30062 –

回答

3

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

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

4

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

你可以看到this other answer

6

末的详细信息,我听到没有boolean类型在Oracle。改用number(1)

+2

只有在SQL中,在PLSQL中有 –

相关问题