Informazioni sui tipi di dati Oracle di base
In questo argomento viene descritto in che modo l'adapter Microsoft BizTalk per Oracle presenta i tipi di dati Oracle di base.
Tipi di dati Oracle supportati
L'adapter Microsoft BizTalk per Oracle Database supporta la digitazione sicura per alcuni tipi di dati Oracle. Quando la digitazione sicura è abilitata, questi tipi di dati vengono rappresentati come stringhe. Per configurare la digitazione sicura, impostare la proprietà di associazione EnableSafeTyping . La digitazione sicura è disabilitata per impostazione predefinita. Per altre informazioni sulle proprietà di associazione dell'adattatore Oracle Database, vedere Informazioni sulle proprietà di associazione dell'adapter Oracle Database.
Nota
La digitazione sicura non è supportata se i tipi di dati si trovano all'interno di tipi definiti dall'utente (UDT).
Nella tabella seguente viene illustrato come vengono visualizzati i tipi di dati Oracle con la digitazione sicura disabilitata (EnableSafeTyping è false). I tipi di dati Oracle interessati dalla proprietà di associazione EnableSafeTyping sono contrassegnati con un asterisco (*).
Tipo di dati Oracle | Tipo XSD | Tipo .NET | Commenti |
---|---|---|---|
BFile | input: xsd:string output: xsd:base64Binary |
string Byte[] |
Il tipo di dati BFile non è supportato all'interno di tipi complessi, ad esempio RecordType, TableType, UDT e VArray. |
BLOB | xsd:base64Binary | Byte[] | Supportato per le operazioni e le procedure delle tabelle. |
Char | xsd:string | string | Supportato per le operazioni e le procedure delle tabelle. |
Clob | xsd:string | string | Supportato per le operazioni e le procedure delle tabelle. |
Data* (Nessuna digitazione sicura se all'interno di un tipo definito dall'utente) |
xsd:dateTime | Datetime | I valori di data non possono contenere informazioni sul fuso orario (offset UTC o UTC): - I valori xsd:dateTime non devono contenere offset UTC o UTC - DateTime.Kind deve essere DateTimeKind.Unspecified Se vengono specificate informazioni sul fuso orario, l'adapter genera un'eccezione XmlReaderParsingException con un messaggio che indica il campo. |
Galleggiante** | xsd:float se prec <=7 xsd:double se prec > 7 e <=15 xsd:string se prec > 15 |
Float Double string |
- |
IntervalYM | xsd:string xsd:long se all'interno di un tipo definito dall'utente |
string Long se all'interno di un tipo definito dall'utente |
Il valore deve essere espresso in formato nativo Oracle: Year-Month; Ad esempio, "1-2" (1 anno e 2 mesi). |
IntervalDS | xsd:string xsd:duration se all'interno di un tipo definito dall'utente |
string Intervallo di tempo se all'interno di un tipo definito dall'utente |
Il valore deve essere espresso in formato nativo Oracle: Day HH:MI:SSxFF; ad esempio "5 15:30:12.99" |
long | xsd:string | string | Supportato per tutte le operazioni di tabella, le stored procedure e le funzioni. Nota: A partire dalla versione 9i del database Oracle, il tipo di dati LONG è deprecato. Oracle consiglia invece di usare i tipi di dati LOB. Pertanto, quando si eseguono operazioni sul database Oracle usando l'adattatore Oracle Database, è consigliabile usare artefatti di database Oracle che operano sui tipi di dati LOB e non sul tipo di dati LONG. |
LongRaw | xsd:base64Binary | Byte[] | - |
NChar | xsd:string | string | - |
NClob | xsd:string | string | Supportato per le operazioni e le procedure delle tabelle. |
Numero** | xsd:decimal se prec <=28 xsd:string se prec > 28 |
Decimal string |
- |
NVarchar2 | xsd:string | string | - |
Notifica non elaborata | xsd:base64Binary | Byte[] | Supportato per le operazioni e le procedure delle tabelle. |
Rowid | xsd:string | string | - |
Timestamp* (Nessuna digitazione sicura se all'interno di un tipo definito dall'utente) |
xsd:dateTime se prec <= 7 xsd:string se prec > 7 |
Datetime string |
I valori timestamp non possono contenere informazioni sul fuso orario (offset UTC o UTC): - I valori xsd:dateTime non devono contenere offset UTC o UTC - DateTime.Kind deve essere DateTimeKind.Unspecified Se vengono specificate informazioni sul fuso orario, l'adapter genera un'eccezione XmlReaderParsingException con un messaggio che indica il campo. |
TimeStampLTZ | xsd:string | string | TimeStampLTZ non è supportato all'interno dei tipi definiti dall'utente. All'esterno di un tipo definito dall'utente: il valore deve essere espresso in NLS_TIMESTAMP_TZ_FORMAT. |
TimeStampTZ | xsd:string xsd:dateTime se all'interno di un tipo definito dall'utente |
string DateTime se all'interno di un tipo definito dall'utente |
All'esterno di un tipo definito dall'utente: il valore deve essere espresso in NLS_TIMESTAMP_TZ_FORMAT. |
Decimale** | xsd:decimal se prec <=28 xsd:string se prec > 28 |
Decimal string |
- |
Varchar2 | xsd:string | string | - |
Binary Float** | xsd:float se prec <=7 xsd:string se prec > 7 |
Float Stringa |
È necessario specificare il valore in un modulo coerente con le impostazioni locali (System.Globalization.CultureInfo.CurrentCulture). Ad esempio, per le impostazioni locali inglesi usare un carattere punto ('.') per specificare il separatore decimale; per le impostazioni locali francesi, usare un carattere virgola (','). |
Binary Double** | xsd:double se prec <=15 xsd:string se prec > 15 |
Double string |
- |
Integer binario** | xsd:integer | Int32 | Supportato per procedure, funzioni e pacchetti. |
Boolean | xsd:boolean | Valore booleano nullable | |
XMLTYPE | xsd:string | string | Supportato per i parametri delle procedure di primo livello. I caratteri XML riservati, ad esempio '<', '>' devono essere sostituiti con la relativa rappresentazione di entità (<, >) durante lo sviluppo di applicazioni in BizTalk e quando si usa il modello di canale WCF. Questa operazione non è necessaria nel caso del modello di servizio WCF. |
*Il modo in cui questi tipi di dati Oracle vengono visualizzati è influenzato dalla proprietà di associazione EnableSafeTyping .
**Il modo in cui vengono visualizzati questi tipi di dati numerici Oracle all'interno di DataSet e cursori REF con tipizzazione debole è influenzato dalla proprietà di associazione EnableSafeTyping .
Importante
- La lunghezza massima del valore in un tipo di dati Oracle nell'adattatore Oracle Database è associata alla lunghezza massima del valore supportato da ODP.NET per il tipo di dati Oracle.
- L'adattatore Oracle Database considera internamente i tipi di dati numerici Oracle all'interno dei tipi definiti dall'utente come decimale .NET. In generale, tuttavia, ovvero al di fuori dei tipi definiti dall'utente, l'adattatore Oracle Database considera internamente i tipi di dati numerici Oracle come OracleDecimal.
Tipizzazione sicura abilitata
Nella tabella seguente viene illustrato il modo in cui i tipi di dati Oracle interessati dalla digitazione sicura vengono modificati quando la proprietà di associazione EnableSafeTyping è true.
Tipo di dati Oracle | Tipo XSD | Tipo .NET | Commento |
---|---|---|---|
Data | xsd:string | string | Il valore deve essere espresso in Oracle NLS_DATE_FORMAT. |
TimeStamp | xsd:string | string | Il valore deve essere espresso in Oracle NLS_TIMESTAMP_FORMAT. |
Importante
Se la digitazione sicura è abilitata, i tipi di dati numerici Oracle all'interno di Set di dati e cursori REF con tipizzazione debole vengono sempre esposti come stringhe.
I tipi di dati Oracle che non si trovano in questa tabella vengono visualizzati nello stesso modo se la digitazione sicura è abilitata o disabilitata.
Convalida
L'adapter Microsoft BizTalk per Oracle Database non esegue alcuna convalida esplicita sui valori specificati per i tipi di dati Oracle. Tuttavia, a seconda del tipo di dati Oracle e se la digitazione sicura è abilitata o disabilitata, è possibile eseguire la convalida implicita:
Durante la de-serializzazione tra il codice XML passato in un messaggio e i tipi .NET utilizzati internamente dall'adapter.
Per ODP.NET per alcuni tipi di dati.