我是新手Oracle用戶。我想更新我的表格中的布爾字段作爲記錄之一。哪一個陳述是正確的?如何更新Oracle表中的布爾型字段
update MyTable set myBooleanColumn = 1 where UserId= 'xx12345';
or
update MyTable set myBooleanColumn = '1' where UserId= 'xx12345';
任何幫助非常感謝!謝謝 !
我是新手Oracle用戶。我想更新我的表格中的布爾字段作爲記錄之一。哪一個陳述是正確的?如何更新Oracle表中的布爾型字段
update MyTable set myBooleanColumn = 1 where UserId= 'xx12345';
or
update MyTable set myBooleanColumn = '1' where UserId= 'xx12345';
任何幫助非常感謝!謝謝 !
這取決於字段是如何定義的支持。
如果將其定義爲CHAR(1)字段,則可以在其中存儲'Y'/'N'或'T'/'F'。要更新字段,您將使用引號,因爲它將是一個字符串文字。
UPDATE TestTable set myCharBooleanColumn = 'Y';
如果該字段被定義爲NUMERIC,則約定是0 =假,1或-1爲真(我看到兩者)。
UPDATE TestTable set myNumericBooleanColumn = 1;
很多人會主張CHAR(1)的方式,但在現實世界 - 你看這兩個。這取決於如何實現布爾值。
你可以閱讀更多在甲骨文的文檔上的數據類型 http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm
Oracle中沒有這樣的布爾字段,所以你的字段是數字字段或字符字段。如果它是數字字段,則不需要引用該數字;如果它是字符字段,則應引用該字符串。
您可以通過查詢USER_TAB_COLUMNS找出列的類型:
select *
from user_tab_columns
where table_name = 'MYTABLE'
and column_name = 'MYBOOLEANCOLUMN'
或describing表。
在Oracle中沒有什麼是布爾型的字段。
最好的你可以做的是創建該表是這樣的: -
create table ABC(bool char(1) check (bool in ('N','Y'));
然後簡單的更新一樣
UPDATE ABC set bool = 'Y';
爲什麼TAKING CHAR?
沒有爲布爾值,位或TINYINT數據類型,因此焦炭將是最好的,因爲它需要1個字節
有沒有這樣的事情作爲Oracle表的布爾數據類型。您必須執行以下兩個選項之一 - 創建varchar2(1)的字段,並設置爲Y/N或數字字段,並將其設置爲1/0 – OldProgrammer