設定定序對應

SQL Server 可能會以不同于 DRDA 用戶端程式所預期的順序來排序查詢結果。 例如,IT 專業人員可能會將 SQL Server 資料庫設定為使用 ANSI 定序和 DB2 for z/OS 資料庫,以使用 EBCDIC 定序。

自動定序

DRDA 服務可以根據預設 ORDER BY 定序名稱,將子句 ORDER BY 加入 COLLATE 子句。

  
SELECT * FROM CONTOSO.DSN8910.DEPT ORDER BY DEPTNAME  
  
SELECT * FROM [CONTOSO].[DSN8910].[DEPT] ORDER BY DEPTNAME COLLATE SQL_EBCDIC037_CP1_CS_AS  
  
DB2 SELECT ORDER BY syntax automatically transformed to SQL Server ORDER BY COLLATE.  
  

defaultCollationName元素會指示 DRDA 服務在將 DB2 SELECT 語句 with ORDER BY 子句轉換成具有 ORDER BY 子句的 SQL Server SELECT 語句時,新增 SQL Server COLLATE (collation_name) 子句。 這個 選擇性 屬性會接受 字串 值。 預設值為 SQL_Latin1_General_CP1_CI_AS

對應定序名稱

DRDA 服務可以藉由 COLLATION_KEY (定序-名稱) 語法,將 SELECT 語句轉換成 SQL Server SQL (語法(從 db2 定序名稱值對應至 collation_name) 值),以提供更相容的查詢結果。 請參閱下面的定序語法轉換。

  
SELECT * FROM CONTOSO.DSN8910.DEPT ORDER BY COLLATION_KEY (DEPTNAME, 'UCA400R1_LEN_AN')  
SELECT * FROM [CONTOSO].[DSN8910].[DEPT] ORDER BY DEPTNAME COLLATE SQL_EBCDIC037_CP1_CS_AS  

DB2 SELECT ORDER BY相較于 SQL Server 的語法。

service 元素內的collationNames元素可以包含一或多個 collationName 元素,以指示 DRDA 服務在將 db2 SELECT 語句 with ORDER BY COLLATION_KEY (collation-name) 子句轉換成 SQL Server SELECT 語句 with ORDER BY COLLATE (collation_name) 子句時,將 db2 定序名稱值轉換成 SQL Server collation_name 值。

<collationNames>  
          <collationName from="UCA400R1_LEN_AN" to="SQL_EBCDIC037_CP1_CS_AS"/>  
        </collationNames>  
  

定序名稱元素和屬性。

定序名稱

CollationName元素必須包含from屬性和to屬性,才能定義定序名稱對應。

從定序名稱對應

from屬性會指示 DRDA 服務 SQL 轉換器,從 DB2 SELECT ORDER BY COLLATION_KEY 子句內的指定定序名稱字串進行轉換。 這個 必要 屬性會接受 字串 值。 沒有任何預設值。

對應至定序名稱

to屬性會指示 DRDA 服務 SQL 轉換器,以在 SQL Server SELECT ORDER by COLLATE 子句內轉換成指定的 collation_name 字串。 這個 必要 屬性會接受 字串 值。 沒有任何預設值。

如需詳細資訊,請參閱SQL Server COLLATE