. net BlockCopy和DB2字符转换使用CodePage
本文关键字:CodePage 转换 字符 BlockCopy DB2 net | 更新日期: 2023-09-27 18:02:42
我知道在数据库的不同表中可以设置不同的排序。字符集和排序的确切含义是什么?
有一个查询从一个char结果执行CAST
,如下所示。不涉及到桌子。我猜,应用的编码将基于数据库级别的排序。这个假设正确吗?
SELECT CAST ( SSS.id_encrypt ('E','0000000{0}') AS CHAR(100) FOR BIT DATA)
AS ENCRYPT_ID FROM FFGLOBAL.ONE_ROW FETCH FIRST 1 ROW ONLY
在问题Get Byte[]从Db2没有编码的答案@AlexFilipovici[。净BlockCopy
与净CAST
的结果不同。如果没有相关的codepage
,为什么会这样?
-字符转换
参考位数据(列定义为FOR Bit data,或blob,或二进制字符串)不与任何字符集相关联。
- 从Db2中获取Byte[]而不需要编码
- 新数据库的默认代码页是Unicode
- 国家语言支持-字符转换
查看SQL Server中数据库级别的排序规则:
SELECT DATABASEPROPERTYEX('databasename', 'Collation');
: DATABASEPROPERTYEX
回答您的问题:
#1:在基于字符的数据类型上指定FOR BIT DATA
(在DB2中)意味着DB2存储/返回原始数据而不关联代码页(即它只是一个字节串,不会在客户机和服务器之间进行任何代码页转换)。
#2:在DB2 for Linux, UNIX和Windows中,您可以通过查询SYSIBMADM.DBCFG
select name,value
from sysibmadm.dbcfg
where name in ('codepage','codeset');
#3: Per @Iswanto San:
SELECT DATABASEPROPERTYEX('databasename', 'Collation');