2013-10-22 33 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中有 –

相關問題