2013-02-06 44 views

回答

7

SQL中沒有BOOLEAN數據類型。但是,我們可以代表這樣說:

CREATE TABLE tt 
    (test NUMBER(1) NOT NULL CHECK (test in (0,1))) 
+0

啊,很好。那個支票的開銷如何? –

+0

但我可以以某種方式創建一個名爲布爾型的類型,然後在我的表中添加字段布爾值? –

+0

@DanielHilgarth是的,但是我們希望更好的性能和錯誤,還是更少的性能和錯誤? –

1

沒有布爾數據類型。您必須使用NUMBER(1)

+0

嗯,似乎有點短,我可以把你的領域3 ... –

+0

@RaphaëlAlthaus:我知道。如果你有更好的解決方案,我會很高興聽到它。我從來沒有找到一個。但它確實不是問題。只要像C++那樣對待這個領域:0意味着虛假,而不是0意味着真實。 –

-4

閱讀關於甲骨文的文檔和使用數字虛擬列別人的建議:0假,1爲真。 Oracle中的CREATE表中沒有BOOLEAN數據類型。

+0

虛擬專欄與此有什麼關係?它們是一個很好的機制來保存(或者保持)非數據化數據。 – APC

+0

至於虛擬列,我知道他們做了什麼。我沒有看到它們在這個問題上的相關性。如果你認爲他們是恰當的,你應該編輯你的「答案」以包含一些示例代碼。這至少與現有答案不同。誰知道,我甚至可以upvote你... – APC

+0

@ APC-問題是關於創建布爾attr。在Oracle表中。我提到其他人已經回答關於布爾和建議使用virt。因爲這是van在CREATE TABLE中用作問題狀態的特徵。我希望你現在明白了。你和其他人可以使我想要的所有東西都下降 - 我沒有得到任何分數,也沒有尋求認可。我正在學習和幫助,感謝不像其他許多人...... – Art

2

退房CREATE TYPE for Oracle。

在一些數據庫中,可以定義自己的布爾數據類型(這並沒有在甲骨文工作,有人告訴我,但它說明的想法):

CREATE DOMAIN BOOLEAN 
AS NUMBER(1) 
NOT NULL 
CHECK (value IN (0,1)) 

這可以用於作爲表格列的其他類型。

+0

我得到這個錯誤:ORA-00901:無效CREATE命令 編輯:正如我在互聯網上看到的,CREATE DOMAIN不是ORACLE的一部分SQL –

+1

查看CREATE TYPE for Oracle。 –