Partager via


À 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.