3 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
Oracle的SQL(不是PL / SQL)不僅缺少布爾數(shù)據(jù)類型,而且對于使用什么數(shù)據(jù),他們也沒有明確的建議。請參見asktom上的該線程。從推薦CHAR(1) 'Y'/'N'它們切換到NUMBER(1) 0/1有人指出'Y'/'N'依賴英語的時(shí)間,而例如德國程序員可能會改'J'/'N'而使用。
最糟糕的是,他們像捍衛(wèi)''=NULL愚蠢一樣捍衛(wèi)這個(gè)愚蠢的決定。

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
根據(jù)Ammoq和kupa的答案,我們使用number(1),默認(rèn)值為0,并且不允許為空。
這是一個(gè)添加列來演示:
ALTER TABLE YourSchema.YourTable ADD (ColumnName NUMBER(1) DEFAULT 0 NOT NULL);
希望這對某人有幫助。

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
不,Oracle數(shù)據(jù)庫中沒有布爾類型,但是您可以這樣做:
您可以在列上放置檢查約束。
如果您的表沒有檢查列,則可以添加它:
ALTER TABLE table_name
ADD column_name_check char(1) DEFAULT '1';
添加寄存器時(shí),默認(rèn)情況下此列為1。
在這里,您進(jìn)行了檢查以限制列值,僅輸入1或0
ALTER TABLE table_name ADD
CONSTRAINT name_constraint
column_name_check (ONOFF in ( '1', '0' ));
添加回答
舉報(bào)