À propos des types de données Oracle de base
Cette rubrique décrit comment l’adaptateur Microsoft BizTalk pour Oracle Database présente les types de données Oracle de base de données.
Types de données Oracle pris en charge
L’adaptateur Microsoft BizTalk pour Oracle Database prend en charge la saisie sécurisée pour certains types de données Oracle. Lorsque la saisie sécurisée est activée, ces types de données sont représentés sous forme de chaînes. Vous configurez la saisie sécurisée en définissant la propriété de liaison EnableSafeTyping . La saisie sécurisée est désactivée par défaut. Pour plus d’informations sur les propriétés de liaison de l’adaptateur Oracle Database, consultez En savoir plus sur les propriétés de liaison de l’adaptateur Oracle Database.
Notes
La saisie sécurisée n’est pas prise en charge si les types de données se trouvent dans les types définis par l’utilisateur (UDT).
Le tableau suivant montre comment les types de données Oracle sont exposés avec la saisie sécurisée désactivée (EnableSafeTyping est false). Les types de données Oracle affectés par la propriété de liaison EnableSafeTyping sont marqués d’un astérisque (*).
Type de données Oracle | Type XSD | Type .NET | Commentaires |
---|---|---|---|
BFile | entrée : xsd :string sortie : xsd :base64Binary |
String Byte[] |
Le type de données BFile n’est pas pris en charge dans les types complexes (tels que RecordType, TableType, UDT et VArray). |
Blob | xsd:base64Binary | Byte[] | Pris en charge pour les opérations et procédures de table. |
Char | xsd:string | String | Pris en charge pour les opérations et procédures de table. |
Clob | xsd:string | String | Pris en charge pour les opérations et procédures de table. |
Date* (Pas de saisie sécurisée à l’intérieur d’un UDT) |
xsd:dateTime | DateTime | Les valeurs de date ne peuvent pas contenir d’informations de fuseau horaire (décalages UTC ou UTC) : - les valeurs xsd :dateTime ne doivent pas contenir de décalages UTC ou UTC - DateTime.Kind doit être DateTimeKind.Unspecified Si des informations de fuseau horaire sont spécifiées, l’adaptateur lève une exception XmlReaderParsingException avec un message indiquant le champ. |
Flotteur** | xsd :float if prec <=7 xsd :double si préc > 7 et <=15 xsd :string si préc > 15 |
Float Double String |
- |
IntervalYM | xsd:string xsd :long si à l’intérieur d’un UDT |
String Long si à l’intérieur d’un UDT |
La valeur doit être exprimée au format natif Oracle : Année-Mois ; Par exemple, « 1-2 » (1 an et 2 mois). |
Intervalles | xsd:string xsd :duration si à l’intérieur d’un UDT |
String Intervalle de temps si à l’intérieur d’un UDT |
La valeur doit être exprimée au format natif Oracle : Jour HH :MI :SSxFF ; par exemple, « 5 15 :30 :12.99 » |
Long | xsd:string | String | Pris en charge pour toutes les opérations de table, procédures stockées et fonctions. Note: À compter de la version Oracle Database 9i, le type de données LONG est déconseillé. Oracle recommande d’utiliser les types de données métier à la place. Par conséquent, lorsque vous effectuez des opérations sur la base de données Oracle à l’aide de l’adaptateur Oracle Database, nous vous recommandons d’utiliser des artefacts de base de données Oracle qui fonctionnent sur des types de données métier et non sur le type de données LONG. |
LongRaw | xsd:base64Binary | Byte[] | - |
NChar | xsd:string | String | - |
NClob | xsd:string | String | Pris en charge pour les opérations et procédures de table. |
Nombre** | xsd :decimal if prec <=28 xsd :string si préc > 28 |
Decimal String |
- |
NVarchar2 | xsd:string | String | - |
Brut | xsd:base64Binary | Byte[] | Pris en charge pour les opérations et procédures de table. |
Rowid | xsd:string | String | - |
Timestamp* (Pas de saisie sécurisée à l’intérieur d’un UDT) |
xsd :dateTime if prec <= 7 xsd :string si préc > 7 |
DateTime String |
Les valeurs TimeStamp ne peuvent pas contenir d’informations de fuseau horaire (décalages UTC ou UTC) : - Les valeurs xsd :dateTime ne doivent pas contenir de décalages UTC ou UTC - DateTime.Kind doit être DateTimeKind.Unspecified Si des informations de fuseau horaire sont spécifiées, l’adaptateur lève une exception XmlReaderParsingException avec un message qui indique le champ. |
TimeStampLTZ | xsd:string | String | TimeStampLTZ n’est pas pris en charge dans les UDT. En dehors d’un type défini par l’utilisateur : la valeur doit être exprimée en NLS_TIMESTAMP_TZ_FORMAT. |
TimeStampTZ | xsd:string xsd :dateTime si à l’intérieur d’un type défini par l’utilisateur |
String DateTime si à l’intérieur d’un type défini par l’utilisateur |
En dehors d’un type défini par l’utilisateur : la valeur doit être exprimée en NLS_TIMESTAMP_TZ_FORMAT. |
Decimales** | xsd :decimal si prec <=28 xsd :string si préc > 28 |
Decimal String |
- |
Varchar2 | xsd:string | String | - |
Float binaire** | xsd :float if prec <=7 xsd :string si préc > 7 |
Float Chaîne |
Vous devez spécifier la valeur dans un formulaire cohérent avec vos paramètres régionaux (System.Globalization.CultureInfo.CurrentCulture). Par exemple, pour les paramètres régionaux anglais, utilisez un caractère de point ('.') pour spécifier la décimale ; pour Français paramètres régionaux, utilisez un caractère de virgule (« , »). |
Binaire Double** | xsd :double if prec <=15 xsd :string si préc > 15 |
Double String |
- |
Binary Integer** | xsd:integer | Int32 | Pris en charge pour les procédures, les fonctions et les packages. |
Boolean | xsd:boolean | Valeur booléenne nullable | |
XMLTYPE | xsd:string | String | Pris en charge pour les paramètres de procédure de niveau supérieur. Les caractères XML réservés tels que «< », «> » doivent être remplacés par leur représentation d’entité (<, >) lors du développement d’applications dans BizTalk et lors de l’utilisation du modèle de canal WCF. Cela n’est pas obligatoire dans le cas du modèle de service WCF. |
*La façon dont ces types de données Oracle sont exposés est affectée par la propriété de liaison EnableSafeTyping .
**La façon dont ces types de données numériques Oracle à l’intérieur des DataSets et des CURSEURS REF faiblement typés sont exposés est affectée par la propriété de liaison EnableSafeTyping .
Important
- La longueur maximale de la valeur dans un type de données Oracle dans l’adaptateur Oracle Database est liée par la longueur maximale de la valeur prise en charge par ODP.NET pour le type de données Oracle.
- L’adaptateur Oracle Database traite en interne les types de données numériques Oracle à l’intérieur des types de données définis par l’utilisateur comme décimal .NET. Toutefois, en général (c’est-à-dire en dehors des UDT), l’adaptateur Oracle Database traite en interne les types de données numériques Oracle comme OracleDecimal.
Saisie sécurisée activée
Le tableau suivant montre comment les types de données Oracle affectés par la saisie sécurisée sont modifiés lorsque la propriété de liaison EnableSafeTyping a la valeur true.
Type de données Oracle | Type XSD | Type .NET | Commentaire |
---|---|---|---|
Date | xsd:string | String | La valeur doit être exprimée en NLS_DATE_FORMAT Oracle. |
TimeStamp | xsd:string | String | La valeur doit être exprimée en NLS_TIMESTAMP_FORMAT Oracle. |
Important
Si la saisie sécurisée est activée, les types de données numériques Oracle dans les DataSets et les CURSEURS REF faiblement typés sont toujours exposés sous forme de chaînes.
Les types de données Oracle qui ne figurent pas dans cette table sont exposés de la même façon que la saisie sécurisée est activée ou désactivée.
Validation
L’adaptateur Microsoft BizTalk pour Oracle Database n’effectue aucune validation explicite sur les valeurs que vous spécifiez pour les types de données Oracle. Toutefois, selon le type de données Oracle et si la saisie sécurisée est activée ou désactivée, la validation implicite peut être effectuée :
Lors de la désérialisation entre le xml passé dans un message et les types .NET utilisés en interne par l’adaptateur.
Par ODP.NET pour certains types de données.