Sql 在Oracle中创建布尔属性?

Sql 在Oracle中创建布尔属性?,sql,database,oracle,database-design,Sql,Database,Oracle,Database Design,我必须在Oracle中创建一个表和一个列,我必须使它成为布尔类型。你能告诉我怎么做吗?我在互联网上搜索过,但找不到明确的答案。没有布尔数据类型。您必须使用NUMBER(1)SQL中没有布尔数据类型。但我们可以这样表示: CREATE TABLE tt (test NUMBER(1) NOT NULL CHECK (test in (0,1))) 阅读Oracle文档中的虚拟列,并使用其他人建议的数字:0-false,1-true。Oracle中的CREATE table中没有布尔数据类型

我必须在Oracle中创建一个表和一个列,我必须使它成为布尔类型。你能告诉我怎么做吗?我在互联网上搜索过,但找不到明确的答案。

没有布尔数据类型。您必须使用
NUMBER(1)

SQL中没有布尔数据类型。但我们可以这样表示:

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

阅读Oracle文档中的虚拟列,并使用其他人建议的数字:0-false,1-true。Oracle中的CREATE table中没有布尔数据类型。

请签出Oracle

在某些数据库中,可以定义自己的布尔数据类型(我听说这在Oracle中不起作用,但它说明了这一点):


这可以用作表列的任何其他类型。

hmmm,似乎有点短,我可以在您的字段中输入3…@RaphaëlAlthaus:我知道。如果你有更好的解决办法,我很高兴听到。我从来没有找到过。但这真的不是问题。只要像C++那样对待这个领域:0意味着错误,而不是0意味着真的。检查的开销如何?但我是否可以创建一个名为boolean的类型,然后在我的表中添加boolean字段?@DanielHilgarth是的,但我们想要更好的性能和错误,还是更少的性能和错误?@RaphaëlAlthaus:没有人想要错误,但我看不到任何错误。你…吗?请参阅我的另一条评论:简单地将所有不为0的内容视为真实。这在计算方面有着悠久的历史。这不是一个真正的日常使用实现。我有一个学校项目,我的老师给了我这个模式,带有布尔属性。虚拟列和这个有什么关系?它们是一种保存(或似乎保存)去镜像数据的很酷的机制。至于虚拟列,我知道它们是做什么的。我没有看到的是它们在这里与这个问题的相关性。如果你认为它们是相关的,你应该编辑你的“答案”,包括一些示例代码。这至少与现有的答案不同。谁知道呢,我甚至可能会投票给你…@APC-问题是关于创建布尔属性。在Oracle表中。我提到其他人已经回答了关于布尔值的问题,并建议使用virt。列进行计算,因为这是问题状态下创建表时可以使用的功能。我希望你现在明白了。你和其他人可以随意投票否决我——我不会因为分数而得到任何东西,也不会寻求认可。我在学习、帮助和感谢,不像其他许多人……让我们来看看这个错误:ORA-00901:无效的CREATE命令编辑:正如我在互联网上看到的,CREATE DOMAIN不是ORACLE SQL的一部分查看ORACLE的CREATE TYPE。
CREATE DOMAIN BOOLEAN
AS NUMBER(1)
NOT NULL
CHECK (value IN (0,1))