【问题标题】:Selecting from a HSQLDB table with a BIT column从具有 BIT 列的 HSQLDB 表中进行选择
【发布时间】:2011-09-28 10:43:44
【问题描述】:

我有一个表,其中有一列数据类型为bit

> CREATE MEMORY TABLE Dummy (name varchar(10), flag bit)
> INSERT INTO Dummy VALUES ('foo', 1)
> INSERT INTO Dummy VALUES ('bar', 0)
> INSERT INTO Dummy VALUES ('foo2', true)
> INSERT INTO Dummy VALUES ('bar2', false)

> select name from Dummy where flag=1

foo2

> select name from Dummy where flag=true

foo2

为什么我没有得到foo01 位如何转换为布尔值?似乎两者都是假的,我无法区分它们。

(顺便说一句,这个表是基于我在 Sybase 中的一个表。位 1 和 0 被正确地转换为真假。)

【问题讨论】:

    标签: java hsqldb


    【解决方案1】:

    这与您对 HSQLDB 2.2.5 的预期一样工作,返回两行。

    HSQLDB 2.x 直接支持 BIT 类型并存储位值。可以存储值 B'0' 和 B'1'。它将 TRUE 和 FALSE 分别转换为 1 和 0。整数值 0 和 1 也被转换为位。

    一旦定义了列,HSQLDB 1.8 就会将 BIT 转换为 BOOLEAN。从整数转换可能并不总是有效。

    【讨论】:

    • 感谢您的提示。我现在已经从 1.8 升级到 2.2.4。当我使用 1 或 0 时出现“格式错误的二进制字符串”错误,但如果我使用 '1' 或 '0' 则它可以工作。
    猜你喜欢
    • 2020-03-26
    • 2020-05-09
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多