当我尝试在 DB2 中的列中插入一个字符串值(定义为CHAR(15) FOR BIT DATA )时,我注意到它被转换为其他格式,可能是十六进制。
在检索数据时,我得到一个字节数组,并在尝试使用System.Text.Encoding.ASCII.GetString将其转换回 ASCII 时,我得到一个包含一些垃圾字符的字符串。
有人遇到过这个问题吗?有什么决议吗?
提前致谢。
For Bit Data 防止客户端和服务器之间的代码页转换。这通常用于插入二进制数据,而不是字符串。
请看一下这个论坛,其中提出并解决了许多案例:http ://www.dbforums.com/db2/1663992-bit-data.html
您最终可以对数据库页面进行强制转换(这取决于您的平台)
CAST(c1 AS CHAR(n) FOR SBCS DATA)
CAST (<forbitdataexpression> AS [VARCHAR|CHAR][(<n>)] FOR [SBCS|DBCS] DATA)
参考