Database
Db2
Scenario
我有一个专栏需要是真还是假。我找到了两个资源来说明如何实现这一目标;但是,当我将它们放在一起时,我收到错误。
- 布尔值 https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0055394.html
- 数据类型之间的转换 https://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0008478.html
目前的解决方案
CREATE TABLE USERS
(
ID INT NOT NULL,
.
.
.
IS_LOCKED SMALLINT NOT NULL WITH DEFAULT 0,
PRIMARY KEY(ID)
);
SELECT U.ID, CAST(U.IS_LOCKED AS BOOLEAN) as IS_LOCKED FROM USERS U
Error: A value with data type "SYSIBM.SMALLINT" cannot be CAST to type "SYSIBM.BOOLEAN"
Question
如何在 Db2 中使用 BOOLEAN?
Linux/Unix/Windows 上的 Db2 V11.1 支持 BOOLEAN 作为列数据类型,并且此类列可以在结果集中返回。以下是使用命令行处理器(在 bash shell 中)的示例:
create table mytable( id integer, mybool boolean with default true )
DB20000I The SQL command completed successfully.
insert into mytable(id, mybool) values (1, false), (2, true), (3, false)
DB20000I The SQL command completed successfully.
select id,mybool from mytable order by 1
ID MYBOOL
----------- ------
1 0
2 1
3 0
3 record(s) selected.
然而,虽然普通 DDL 和 CLP for SQL DML 支持布尔值,但请考虑使用 Db2 列数据类型布尔值对应用程序的影响。检查 PHP、Python、Java、.net 等如何根据用于访问数据库的语言来操作此数据类型。
Tip:在寻求有关 Db2 的帮助时,明智的做法是始终提及您的 Db2 版本和运行 Db2 服务器的操作系统(即 z/os、iSeries、linux/unix/windows)并相应地标记您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)