CHAR と VARCHAR
DRDA サービスは、ソース データの長さに基づいて、これらのソース DB2 からこれらのターゲット SQL Server データ型に変換します。
CHAR () 8K より大きい FOR BIT は VARBINARY(MAX) にマップされます。
8K より大きい CHAR () は VARCHAR(MAX) にマップされます。
CHAR|VARCHAR () FOR BIT
ソース パッケージ定義とバインド コピー オプションに応じて、CHAR 型のパラメーターを持つ SQL コマンド |VARCHAR () FOR BIT は DRDA BGNBND BNDSQLSTT で CHAR としてエンコードできます。VARCHAR (CCSID=37, 277, 1208) (CHAR としてではなく) |VARCHAR (65535)、または CHAR|VARCHAR ( ) FOR BIT または BINARY|Varbinary。 このパラメーター データ型エンコードの問題により、ターゲット SQL Server 列が BINARY の場合、CREATE PROCEDURE プロセスへのバインド コピーが失敗する可能性があります。Varbinary。 この問題を解決するために、MsDrdaService は CREATE DRDA BNDSQLSTT から SQL Server CREATE PROCEDURE エラーを自動的にキャプチャし、ストアド プロシージャ パラメーターのデータ型を修正する SQL Server カタログから列メタデータを取得してから、CREATE PROCEDURE ステートメントを再実行します。
VARCHAR 列が CHAR パラメーターにマップされる
DRDA サービスは、DRDA BNDSQLSTT (BIND SQL ステートメント) コマンドを SQL Server CREATE PROCEDURE ステートメントに処理し、DB2 DRDA データ型を対応する SQL Server T-SQL データ型に変換します。 DRDA BNDSQLSTT では、DB2 および SQL Server VARCHAR 列のデータ型に対する読み取りと書き込みを行う CHAR パラメーター型が定義されます。 DB2 for z/OS IVT (インストール検証テスト) サンプル・プログラムの静的 SQL パッケージ・DSN8HC91を参照してください。DSN8HC3および対応する SQL Server テーブルと DB2 テーブル。
CREATE TABLE DEPT (
DEPTNO CHAR(3) NOT NULL,
DEPTNAME VARCHAR(36) NOT NULL,
MGRNO CHAR(6) WITH DEFAULT NULL,
ADMRDEPT CHAR(3) NOT NULL,
LOCATION CHAR(16) WITH DEFAULT NULL
)
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC;
DB2 CREATE TABLE ステートメントの例。
CREATE TABLE [DSN8910].[DEPT]([DEPTNO] [char](3) NOT NULL,
[DEPTNAME] [varchar](36) NOT NULL,
[MGRNO] [char](6) NULL,
[ADMRDEPT] [char](3) NOT NULL,
[LOCATION] [char](16) NULL) ON [PRIMARY]
SQL Server CREATE TABLE ステートメントの例。
UPDATE VHDEPT SET DEPTNAME = :H, MGRNO = :H, ADMRDEPT = :H, LOCATION = :H WHERE DEPTNO = :H
DB2 埋め込み静的 SQL ステートメントの例。
CREATE PROCEDURE [DSN8910].[DSN8HC3_18BBB2BA1492DAC8_24]
@P0 char(36)
,@P1 char(6)
,@P2 char(3)
,@P3 char(16)
,@P4 char(36)
AS
UPDATE VHDEPT
SET DEPTNAME = @P0,
MGRNO = @P1,
ADMRDEPT = @P2,
LOCATION = @P3
WHERE DEPTNO = @P4;
RETURN @@ROWCOUNT;
SQL Server CREATE PROCEDURE ステートメントの例。
BLOB と CLOB
DB2 BLOB と CLOB の MsDrdaService のサポートは制限されています。 MsDrdaService では、SQL Server VARBINARY(MAX) にマップされた DB2 BLOB データ型がサポートされ、IMAGE へのマッピングは省略可能です。 MsDrdaService では、SQL Server VARCHAR(MAX) にマップされた DB2 CLOB データ型がサポートされ、TEXT と NTEXT へのマッピングは省略可能です。
動的 SQL BLOB と CLOB
IMAGE との間の BLOB
VARBINARY(MAX) との間の BLOB
テキストとの間の CLOB
NTEXT との間の CLOB
VARCHAR(MAX) との間の CLOB
静的 SQL BLOB と CLOB は、これらのデータ型マッピングを使用して限られた方法で動作します。
入力パラメーター
BLOB から VARBINARY(MAX)
CLOB から VARCHAR(MAX)
出力パラメーター
BLOB から VARBINARY(MAX)
CLOB から VARCHAR(MAX)
CLOB から TEXT
CLOB から NTEXT
既定のデータ型マッピングを利用することをお勧めします。
ntext、text、および image データ型は、今後のバージョンの Microsoft SQL Server で削除される予定です。 新しい開発作業では、これらのデータ型の使用は避け、現在これらのデータ型を使用しているアプリケーションは修正するようにしてください。 代わりに nvarchar(max)、varchar(max)、varbinary(max) を使用してください。
大きな非 Unicode 文字および Unicode 文字とバイナリ データを格納するための固定長および可変長のデータ型。 Unicode データでは、UNICODE UCS-2 文字セットが使用されます。
ntext、text、image (Transact-SQL) を参照してください。