在 DB2 中将位数据的 char 转换为整数

Posted

技术标签:

【中文标题】在 DB2 中将位数据的 char 转换为整数【英文标题】:Convert char for bit data to integer in DB2 【发布时间】:2009-03-06 21:17:34 【问题描述】:

我正在编写一个 DB2 用户定义函数,我需要一个非负整数数组,我将其表示为 用于位数据的 varchar。我打算为每个整数使用两个字节(给我一个最大值 2^16-1,这是可以接受的)。

我可以使用 chr 函数将整数转换为位数据的字符,但是如何将其恢复为整数?

关于 DB2 过程中的位操作的任何其他建议也会有所帮助,因为我似乎找不到太多关于它的文档。我在 Linux 上使用 v9.1。

【问题讨论】:

【参考方案1】:

我不确定 CHR 是否真的是您想要的。根据the documentation,CHR函数:

返回具有参数指定的 ASCII 码值的字符。参数可以是 INTEGER 或 SMALLINT。参数的值应该在 0 到 255 之间;否则返回值为null。

CHR函数的反面是ASCII function.

DB2 标量过程的完整列表是here。

我不确定以这种方式编写 UDF 是否最适合您尝试做的事情。您可能需要考虑编写不在 SQL 中的存储过程。有一个支持的语言列表,如 Java、C、C++ 等。

【讨论】:

ASCII 正是我需要的功能。谢谢!

以上是关于在 DB2 中将位数据的 char 转换为整数的主要内容,如果未能解决你的问题,请参考以下文章

是否值得在 spark 数据帧中将 64 位整数转换为 32 位(16 位)整数?

如何在C中将char转换为整数? [复制]

在iSeries DB2中使用SQL将整数转换为日期

在 C 中将 char* 转换为 wchar*

如何在 Amazon Redshift 中将整数转换为位字符串?

在 C 中将 int 转换为 2 字节的十六进制值