Provider di dati per DB2
Compatibilità della piattaforma
Conversioni delle tabelle codici
Il provider di dati supporta una combinazione di set di caratteri a un byte (SBCS), set di caratteri a byte misti (MBCS), set di caratteri a due byte (DBCS) e Unicode - UTF8 [1208], che è un formato di trasformazione Unicode a 8 bit.
CCSID host
Il provider di dati richiede di specificare un valore per CCSID (Coded Character Set Identifier) host con cui eseguire conversioni di tabelle codici su dati di tipo stringa. Il valore CCSID host predefinito è EBCDIC - U.S./Canada [37]. In genere, i server di database IBM DB2 per z/OS e IBM i usano EBCDIC (Codice interscambio decimale codificato binario esteso).
Tabella codici PC
Il provider di dati richiede un valore per la tabella codici PC con cui eseguire conversioni di tabelle codici su dati di tipo stringa. La tabella codici PC predefinita è ANSI - Latin I [1252]. In genere, i consumer di dati utilizzano ANSI (American National Standards Institute) o Unicode.
Elabora valore binario come carattere
I provider di dati per DB2 converte automaticamente in e da tipi di dati binari (CCSID 65535) e stringa di caratteri, in base al tipo di dati DB2 e al tipo di dati consumer windows. La codifica DB2 è determinata dal CCSID host. La codifica di Windows è determinata dalla tabella codici del PC.
Mapping dei tipi di dati
In questo argomento vengono descritti i mapping di tutti i tipi di dati a quelli di OLE DB.
Mapping dei tipi di dati da DB2 a ADO.NET
Nella tabella seguente vengono descritti i mapping dei tipi di dati DB2 ai tipi di dati ADO.NET Provider for DB2 (MsDb2Client) (MsDb2Type).
MsDb2Type | Tipo di dati DB2 | Descrizione |
---|---|---|
BigInt | Bigint | Un numero intero grande è un numero intero binario a 8 byte. |
Binary | Binary | Un file binario è una stringa binaria a lunghezza fissa. |
bit | Smallint | Un numero intero piccolo è un numero intero binario a due byte. |
BLOB | BLOB | Un oggetto binario di grandi dimensioni è una stringa di lunghezza variabile usata per archiviare dati non testuali o binari. |
Char | Char | Un carattere è una stringa SBCS o MBCS di lunghezza fissa. |
CLOB | CLOB | Un oggetto grande carattere di lunghezza variabile è una stringa di lunghezza variabile. La lunghezza massima della stringa dipende dalla versione e dalla piattaforma DB2. |
Data | Data | Un tipo di dati Date è una stringa di 10 byte. |
DBCLOB | DCLOB | Un oggetto grande carattere a byte doppio a lunghezza variabile è una stringa a byte doppio a lunghezza variabile. La lunghezza massima della stringa dipende dalla versione e dalla piattaforma DB2. |
Decimal | Decimal | Un tipo di dati Decimal è un numero decimale compresso. |
Double | Double | Un tipo di dati Double è un numero di 8 byte a virgola mobile a precisione doppia. |
Graphic | Graphic | Un tipo di dati Graphic è una stringa DBCS di lunghezza fissa. |
Int | Integer | Un tipo di dati Integer è un intero binario di 4 byte. |
Numeric | Numeric | Un tipo di dati Numeric è un numero decimale compresso. |
Real | Real | Un tipo di dati Real è un numero di 4 byte a virgola mobile a singola precisione. |
SmallInt | Smallint | Un numero intero piccolo è un numero intero binario a due byte. |
Ora | Ora | Un tipo di dati Time è una stringa di 8 byte contenente un'ora. |
Timestamp | Timestamp | Un tipo di dati TimesStamp è una stringa di 26 byte che rappresenta data, ora e microsecondi. |
TinyInt | Smallint | Un numero intero piccolo è un numero intero binario a due byte. |
VarBinary | Varbinary | Un file binario variabile è una stringa binaria a lunghezza variabile. |
VarChar | Varchar | Un tipo di dati Varchar è una stringa di caratteri SBCS o MBCS di lunghezza variabile. |
VarGraphic | Vargraphic | Un tipo di dati VarGraphic è una stringa di caratteri DBCS di lunghezza variabile. |
VarWideChar | Vargraphic | Un elemento grafico variabile è una stringa Unicode di sola lunghezza variabile. |
VarWideGraphic | Vargraphic | Un elemento grafico variabile è una stringa Unicode di sola lunghezza variabile. |
WideChar | Graphic | Un elemento grafico è una stringa Unicode a lunghezza fissa. |
Xml | XML | Stringa di documento XML ben formata. |
Mapping dei tipi di dati da DB2 a OLE DB
Nella tabella seguente viene illustrato il mapping tra i tipi di dati DB2 e OLE DB.
Tipo di dati OLE DB | Tipo di dati DB2 | Descrizione |
---|---|---|
DBTYPE_I8 | Bigint | Un intero grande è un intero binario a 8 byte. |
DBTYPE_Bytes | BINARY | Un binario è una stringa binaria a lunghezza fissa |
DBTYPE_Bytes | BLOB | Un oggetto di grandi dimensioni binario è una stringa di lunghezza variabile usata per archiviare dati non testuali o binari. |
DBTYPE_STR | Char | Un carattere è una stringa SBCS o MBCS di lunghezza fissa. |
DBTYPE_WSTR | Char | Un carattere Unicode è una stringa MBCS di lunghezza fissa. |
DBTYPE_STR | CLOB | Un oggetto di lunghezza variabile di grandi dimensioni è una stringa di lunghezza variabile. La lunghezza massima della stringa dipende dalla versione e dalla piattaforma DB2. |
DBTYPE_DBDate | Data | Un tipo di dati Date è una stringa di 10 byte. |
DBTYPE_Decimal | Decimal | Un tipo di dati Decimal è un numero decimale compresso. |
DBTYPE_R8 | Double | Un tipo di dati Double è un numero di 8 byte a virgola mobile a precisione doppia. |
DBTYPE_R8 | Float | Un tipo di dati Float è un numero di 8 byte a virgola mobile a precisione doppia. |
DBTYPE_WSTR | Graphic | Un tipo di dati Graphic è una stringa DBCS di lunghezza fissa. |
DBTYPE_I4 | Integer | Un tipo di dati Integer è un intero binario di 4 byte. |
DBTYPE_STR | Long Varchar | Un tipo di dati Varchar è una stringa di caratteri SBCS o MBCS di lunghezza variabile. |
DBTYPE_WSTR | Long Varchar | Stringa Unicode di lunghezza variabile variabile. |
DBTYPE_WSTR | Lunga vargrafica | Un tipo di dati VarGraphic è una stringa di caratteri DBCS di lunghezza variabile. |
DBTYPE_Numeric | Numeric | Un tipo di dati Numeric è un numero decimale compresso. |
DBTYPE_I2 | Smallint | Un numero intero piccolo è un intero binario a due byte. |
DBTYPE_R4 | Real | Un tipo di dati Real è un numero di 4 byte a virgola mobile a singola precisione. |
DBTYPE_DBTime | Ora | Un tipo di dati Time è una stringa di 8 byte contenente un'ora. |
DBTYPE_DBTimestamp | Timestamp | Un tipo di dati TimesStamp è una stringa di 26 byte che rappresenta data, ora e microsecondi. |
DBTYPE_Bytes | Varbinary | Un binario variabile è una stringa binaria di lunghezza variabile. |
DBTYPE_STR | Varchar | Un tipo di dati Varchar è una stringa di caratteri SBCS o MBCS di lunghezza variabile. |
DBTYPE_WSTR | Varchar | Stringa Unicode di lunghezza variabile variabile. |
DBTYPE_WSTR | VarGraphic | Un tipo di dati VarGraphic è una stringa di caratteri DBCS di lunghezza variabile. |
Le informazioni sullo schema di OLE DB vengono recuperate utilizzando set predefiniti di righe dello schema con IDBSchemaRowset::GetRowset. Il provider di dati ha esposto il set di righe PROVIDER_TYPES per indicare il supporto del mapping dei tipi di dati da DB2 a OLE DB (tipi, mapping, limiti) in base alla piattaforma e alla versione di IBM DB2.
DB2 per z/OS
Il provider di dati supporta l'accesso a questi tipi di dati quando si è connessi a DB2 per z/OS.
DB2 Type_name | OLE DB data_type | Column_size | Minimum_scale | Maximum_scale |
---|---|---|---|---|
Smallint | DBType_12 | 5 | ||
Integer | DBType_14 | 10 | ||
Bigint | DBType_18 | 19 | ||
Binary | DBType_Bytes | 255 | ||
Real | DBType_R4 | 21 | ||
Float | DBType_R8 | 53 | ||
Double | DBType_R8 | 53 | ||
Decimal | Dbtype_decimal | 31 | 0 | 31 |
Graphic | DBType_WSTR | 127 | ||
VarGraphic | DBType_WSTR | 16352 | ||
Char | DBType_STR | 255 | ||
Varchar | DBType_STR | 32672 | ||
Char | DBType_WSTR | 255 | ||
Varchar | DBType_WSTR | 32672 | ||
Numeric | DBType_Numeric | 31 | 0 | 31 |
Data | DBType_DBDate | 10 | ||
Ora | DBType_DBTime | 8 | ||
Timestamp | DBType_Timestamp | 26 | ||
BLOB | DBType_Bytes | 2147483647 | ||
CLOB | DBType_STR | 2147483647 | ||
Long Varchar | DBType_STR | 32704 | ||
Long Varchar | DBType_WSTR | 32704 | ||
Long Vargraphic | DBType_WSTR | 16352 | ||
Varbinary | DBTypte_Bytes | 32704 |
DB2 per IBM i
Il provider di dati supporta l'accesso a questi tipi di dati quando si è connessi a DB2 per IBM i.
DB2 Type_name | OLE DB data_type | Column_size | Minimum_scale | Maximum_scale |
---|---|---|---|---|
Binary | DBType_Bytes | 32765 | ||
Smallint | DBType_12 | 5 | ||
Integer | DBType_14 | 10 | ||
Bigint | DBType_18 | 19 | ||
Real | DBType_R4 | 24 | ||
Float | DBType_R8 | 53 | ||
Double | DBType_R8 | 53 | ||
Decimal | Dbtype_decimal | 63 | 0 | 31 |
Graphic | DBType_WSTR | 16382 | ||
VarGraphic | DBType_WSTR | 16369 | ||
Char | DBType_STR | 32765 | ||
Varchar | DBType_STR | 32739 | ||
Char | DBType_WSTR | 32765 | ||
Varchar | DBType_WSTR | 32739 | ||
Numeric | DBType_Numeric | 31 | 0 | 31 |
Data | DBType_DBDate | 10 | ||
Ora | DBType_DBTime | 8 | ||
Timestamp | DBType_Timestamp | 26 | ||
BLOB | DBType_Bytes | 2147483647 | ||
CLOB | DBType_STR | 2147483647 | ||
Varbinary | DBType_Bytes | 32739 |
DB2 per LUW
Il provider di dati supporta l'accesso a questi tipi di dati quando si è connessi a DB2 per LUW.
DB2 Type_name | OLE DB data_type | Column_size | Minimum_scale | Maximum_scale |
---|---|---|---|---|
Binary | DBType_Bytes | 254 | ||
Smallint | DBType_12 | 5 | ||
Integer | DBType_14 | 10 | ||
Bigint | DBType_18 | 19 | ||
Real | DBType_R4 | 24 | ||
Float | DBType_R8 | 53 | ||
Double | DBType_R8 | 53 | ||
Decimal | Dbtype_decimal | 31 | 0 | 31 |
Graphic | DBType_WSTR | 127 | ||
VarGraphic | DBType_WSTR | 16336 | ||
Char | DBType_STR | 254 | ||
Varchar | DBType_STR | 4000 | ||
Char | DBType_WSTR | 254 | ||
Varchar | DBType_WSTR | 4000 | ||
Char() for BIT data | DBType_Bytes | 254 | ||
Varchar() for BIT data | DBType_Bytes | 32672 | ||
Numeric | DBType_Numeric | 31 | 0 | 31 |
Data | DBType_DBDate | 10 | ||
Ora | DBType_DBTime | 8 | ||
Timestamp | DBType_Timestamp | 26 | ||
BLOB | DBType_Bytes | 2147483647 | ||
CLOB | DBType_STR | 2147483647 | ||
Long Varchar | DBType_STR | 32700 | ||
Long Varchar | DBType_STR | 32700 | ||
Long Varchar | DBType_WSTR | 16350 | ||
Varbinary | DBTYPE_BYTES | 32762 |
SQL Server Integration Services
Quando si utilizzano le procedure guidate di importazione ed esportazione di SQL Server Integration Services da Microsoft SQL Server Management Studio, è possibile personalizzare le conversioni di dati predefinite modificando i file di mapping XML. I file XML si trovano in C:\Programmi\Microsoft SQL Server\130\DTSMappingFiles per 64 bit e C:\Programmi (x86)\Microsoft SQL Server\130\DTSMappingFiles per 32 bit.
Servizi di replica di SQL Server
È possibile che la replica di SQL Server converta erroneamente i dati, in base ai mapping predefiniti, dai tipi di dati di SQL Server a quelli di DB2. È consigliabile che l'amministratore e lo sviluppatore esaminino e verifichino i mapping dei tipi di dati di replica utilizzando le stored procedure di sistema di SQL Server riportate di seguito.
·sp_helpdatatypemap
·sp_getdefaultdatatypemapping
·sp_setdefaultdatatypemapping
Per altre informazioni, vedere Stored procedure di sistema (Transact-SQL).