1

データベース内の異なるテーブルで照合を異なる方法で設定できることを理解しています。照合は文字セットと照合の正確な意味から理解されますか?

CAST以下に示すように、charの結果から実行するクエリがあります。関係するテーブルはありません。適用されるエンコーディングは、データベースレベルでの照合に基づいていると思います。この仮定は正しいですか?

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]によって与えられたエンコーディングなしでDb2からByte[]を取得BlockCopyすると、結果と比較して異なる結果が得られCASTます。関連するものがないのになぜそうなのcodepageですか?

国語サポートに基づく-文字変換

ビットデータ(FOR BIT DATA、BLOB、またはバイナリ文字列として定義された列)は、どの文字セットにも関連付けられていません。

参照

  1. エンコードせずにDb2からByte[]を取得する
  2. 新しいデータベースのデフォルトのコードページはUnicodeです
  3. 国語サポート-文字変換
4

2 に答える 2

1

SQL Serverのデータベースレベルでの照合を見つけるには、次のことを試してください。

SELECT DATABASEPROPERTYEX('databasename', 'Collation');

詳細:DATABASEPROPERTYEX

于 2013-03-06T07:15:11.017 に答える
1

質問に答えるには:

#1:FOR BIT DATA(DB2で)文字ベースのデータ型で指定すると、DB2はコードページを関連付けずに生データを保存/返すことを意味します(つまり、それは単なるバイトの文字列であり、クライアントとサーバーの間でコードページ変換は行われません) .

#2: DB2 for Linux, UNIX and Windows では、クエリを実行することでデータベースの照合順序を決定できます。SYSIBMADM.DBCFG

 select name,value
  from sysibmadm.dbcfg
 where name in ('codepage','codeset');

#3:@Iswantoさんによる:

SELECT DATABASEPROPERTYEX('databasename', 'Collation');
于 2013-03-06T21:12:08.037 に答える