Her*_*rn_ 3 sql oracle oracle10g oracle11g sql-update
我是Oracle新手.我想在我的表中为一个记录更新一个布尔字段.这些陈述中的哪一个是正确的?
update MyTable set myBooleanColumn = 1 where UserId= 'xx12345';
or
update MyTable set myBooleanColumn = '1' where UserId= 'xx12345';
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏!!谢谢 !
这取决于字段的定义方式.
如果将其定义为CHAR(1)字段,则可以在其中存储"Y"/"N"或"T"/"F".要更新该字段,您可以使用引号,因为它将是字符串文字.
UPDATE TestTable set myCharBooleanColumn = 'Y';
Run Code Online (Sandbox Code Playgroud)
如果该字段被定义为NUMERIC,则约定为0 = false且1或-1为真(我已经看到了两者).
UPDATE TestTable set myNumericBooleanColumn = 1;
Run Code Online (Sandbox Code Playgroud)
许多人会提倡CHAR(1)方法,但在现实世界中 - 你会看到两者.这取决于布尔值的实现方式.
您可以在Oracle的数据类型文档中阅读更多内容 http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm