Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
CHAR und VARCHAR
Basierend auf der Länge der Quelldaten konvertiert der DRDA-Dienst von dieser Quelle DB2 in diese SQL Server-Zieldatentypen.
CHAR () FOR BIT greater than 8K is mapped to VARBINARY(MAX).
CHAR () größer als 8K wird VARCHAR(MAX) zugeordnet.
ZEICHEN|VARCHAR () FÜR BIT
Abhängig von der Quellpaketdefinition und den Bindungsoptionen für Kopieroptionen, SQL-Befehle mit Parametern vom Typ CHAR|VARCHAR () FOR BIT kann im DRDA BGNBND BNDSQLSTT als CHAR codiert werden|VARCHAR (CCSID=37, 277, 1208) und nicht als CHAR|VARCHAR (65535) oder CHAR|VARCHAR ( ) FÜR BIT oder BINARY|VARBINARY. Dieses Problem mit der Codierung des Parameterdatentyps kann dazu führen, dass die Bindungskopie an den CREATE PROCEDURE-Prozess fehlschlägt, wenn die ZIEL-SQL Server-Spalten BINÄR sind|VARBINARY. Um dieses Problem zu beheben, erfasst MsDrdaService automatisch den CREATE DRDA BNDSQLSTT zu SQL Server CREATE PROCEDURE-Fehler, ruft Spaltenmetadaten aus dem SQL Server-Katalog ab, mit dem die Datentypen der gespeicherten Prozedurparameter korrigiert werden, und führen Sie dann die CREATE PROCEDURE-Anweisung erneut aus.
VARCHAR-Spalten werden CHAR-Parametern zugeordnet
Der DRDA-Dienst verarbeitet DRDA BNDSQLSTT (Bind SQL Statement)-Befehle in SQL Server CREATE PROCEDURE-Anweisungen und transformiert die DB2 DRDA-Datentypen in entsprechende SQL Server T-SQL-Datentypen. Das DRDA BNDSQLSTT definiert CHAR-Parametertypen zum Lesen und Schreiben in DB2- und SQL Server VARCHAR-Spaltendatentypen. Siehe z.B. das STATISCHE SQL-Paket DSN8HC91 für das Beispielprogramm DB2 für z/OS IVT (Installation Verification Test). DSN8HC3 und entsprechende SQL Server- und DB2-Tabellen.
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;
Beispiel für DB2 CREATE TABLE-Anweisung.
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]
Beispiel für SQL Server CREATE TABLE-Anweisung.
UPDATE VHDEPT SET DEPTNAME = :H, MGRNO = :H, ADMRDEPT = :H, LOCATION = :H WHERE DEPTNO = :H
Beispiel für eingebettete statische SQL-AnweisungDB2.
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;
Beispiel für SQL Server CREATE PROCEDURE-Anweisung.
BLOB und CLOB
MsDrdaService-Unterstützung für DB2 BLOB und CLOB ist eingeschränkt. MsDrdaService unterstützt den DB2 BLOB-Datentyp, der SQL Server VARBINARY(MAX) zugeordnet ist, mit einer optionalen Zuordnung zu IMAGE. MsDrdaService unterstützt den DB2 CLOB-Datentyp, der SQL Server VARCHAR(MAX) zugeordnet ist, mit optionalen Zuordnungen zu TEXT und NTEXT.
Dynamisches SQL-BLOB und CLOB
BLOB in und von IMAGE
BLOB zu und von VARBINARY(MAX)
CLOB in und von TEXT
CLOB in und von NTEXT
CLOB zu und von VARCHAR(MAX)
Statisches SQL-BLOB und CLOB funktionieren auf begrenzte Weise mit diesen Datentypzuordnungen.
Eingabeparameter
BLOB zu VARBINARY(MAX)
CLOB zu VARCHAR(MAX)
Ausgabeparameter
BLOB zu VARBINARY(MAX)
CLOB zu VARCHAR(MAX)
CLOB in TEXT
CLOB zu NTEXT
Microsoft empfiehlt, die Standarddatentypzuordnungen zu verwenden.
ntext-, Text- und Bilddatentypen werden in einer zukünftigen Version von Microsoft SQL Server entfernt. Vermeiden Sie die Verwendung dieser Datentypen bei neuen Entwicklungen, und planen Sie die Änderung von Anwendungen, in denen sie aktuell verwendet werden. Verwenden Sie stattdessen nvarchar(max), varchar(max) und varbinary(max).
Datentypen fester und variabler Länge zum Speichern von großen Nicht-Unicode- und Unicode-Zeichendaten sowie Binärdaten. Unicode-Daten verwenden den UNICODE UCS-2-Zeichensatz.