Condividi tramite


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.