据我所知,可以在数据库的不同表中以不同方式设置排序规则。从What does character set and collation mean exactly?
了解整理有一个查询从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
问题
@AlexFilipovici [.Net BlockCopy
]给出的问题Get Byte[] from Db2 without Encoding答案与CAST
结果相比提供了不同的结果。如果没有codepage
关联,为什么会这样呢?
基于 National language support - Character conversion
位数据(定义为FOR BIT DATA,BLOB或二进制字符串的列)与任何字符集都没有关联。
参考
答案 0 :(得分:1)
要在SQL Server中找出数据库级别的排序规则,请尝试以下方法:
SELECT DATABASEPROPERTYEX('databasename', 'Collation');
答案 1 :(得分:1)
回答你的问题:
#1:在基于字符的数据类型(在DB2中)上指定FOR BIT DATA
意味着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');