Compartir a través de


Acerca de los tipos de datos básicos de Oracle

En este tema se describe cómo el adaptador de Microsoft BizTalk para oracle Database muestra los tipos de datos básicos de Oracle.

Tipos de datos de Oracle admitidos

Microsoft BizTalk Adapter for Oracle Database admite la escritura segura para algunos tipos de datos de Oracle. Cuando se habilita la escritura segura, estos tipos de datos se representan como cadenas. Para configurar la escritura segura, establezca la propiedad de enlace EnableSafeTyping . La escritura segura está deshabilitada de forma predeterminada. Para obtener más información sobre las propiedades de enlace del adaptador de base de datos de Oracle, consulte Más información sobre las propiedades de enlace del adaptador de base de datos de Oracle.

Nota

No se admite la escritura segura si los tipos de datos están dentro de tipos definidos por el usuario (UDT).

En la tabla siguiente se muestra cómo se muestran los tipos de datos de Oracle con la escritura segura deshabilitada (EnableSafeTyping es false). Los tipos de datos de Oracle afectados por la propiedad de enlace EnableSafeTyping se marcan con un asterisco (*).

Tipo de datos de Oracle Tipo XSD Tipo de .NET Comentarios
BFile input: xsd:string
output: xsd:base64Binary
String
Byte[]
El tipo de datos BFile no se admite en tipos complejos (como RecordType, TableType, UDT y VArray).
Blob xsd:base64Binary Byte[] Se admite para operaciones y procedimientos de tabla.
Char xsd:string String Se admite para operaciones y procedimientos de tabla.
Clob xsd:string String Se admite para operaciones y procedimientos de tabla.
Fecha*

(Sin escritura segura si está dentro de un UDT)
xsd:dateTime DateTime Los valores de fecha no pueden contener información de zona horaria (desplazamientos UTC o UTC):

- los valores xsd:dateTime no deben contener desplazamientos UTC o UTC.
- DateTime.Kind debe ser DateTimeKind.Unspecified

Si se especifica información de zona horaria, el adaptador produce una excepción XmlReaderParsingException con un mensaje que indica el campo.
Flotador** xsd:float si prec <=7
xsd:double si prec > 7 y <=15
xsd:string si es anterior a > 15
Float
Double
String
-
IntervalYM xsd:string

xsd:long si está dentro de un UDT
String

Long if inside an UDT
El valor debe expresarse en formato nativo de Oracle: Year-Month; Por ejemplo, "1-2" (1 año y 2 meses).
IntervalDS xsd:string

xsd:duration si está dentro de un UDT
String

Intervalo de tiempo si está dentro de un UDT
El valor debe expresarse en formato nativo de Oracle: Day HH:MI:SSxFF; por ejemplo, "5 15:30:12.99"
long xsd:string String Se admite para todas las operaciones de tabla, procedimientos almacenados y funciones. Nota: A partir de la versión 9i de la base de datos de Oracle, el tipo de datos LONG está en desuso. Oracle recomienda usar los tipos de datos LOB en su lugar. Por lo tanto, al realizar operaciones en la base de datos de Oracle mediante el adaptador de oracle Database, se recomienda usar artefactos de base de datos de Oracle que operan en tipos de datos LOB y no en el tipo de datos LONG.
LongRaw xsd:base64Binary Byte[] -
NChar xsd:string String -
NClob xsd:string String Se admite para operaciones y procedimientos de tabla.
Número** xsd:decimal si prec <=28
xsd:string si prec > 28
Decimal
String
-
NVarchar2 xsd:string String -
Raw xsd:base64Binary Byte[] Se admite para operaciones y procedimientos de tabla.
Identificador xsd:string String -
Timestamp*

(Sin escritura segura si está dentro de un UDT)
xsd:dateTime si prec <= 7
xsd:string si es anterior a > 7
DateTime
String
Los valores timeStamp no pueden contener información de zona horaria (desplazamientos UTC o UTC):

- Los valores xsd:dateTime no deben contener desplazamientos UTC o UTC
- DateTime.Kind debe ser DateTimeKind.Unspecified

Si se especifica información de zona horaria, el adaptador produce una excepción XmlReaderParsingException con un mensaje que indica el campo.
TimeStampLTZ xsd:string String TimeStampLTZ no se admite dentro de udT.

Fuera de un UDT: el valor debe expresarse en NLS_TIMESTAMP_TZ_FORMAT.
TimeStampTZ xsd:string

xsd:dateTime si está dentro de un UDT
String

DateTime si se encuentra dentro de un UDT
Fuera de un UDT: el valor debe expresarse en NLS_TIMESTAMP_TZ_FORMAT.
Decimal** xsd:decimal si prec <=28
xsd:string si es anterior > a 28
Decimal
String
-
Varchar2 xsd:string String -
Binary Float** xsd:float si prec <=7
xsd:string si es > anterior a 7
Float
String
Debe especificar el valor en un formulario coherente con la configuración regional (System.Globalization.CultureInfo.CurrentCulture). Por ejemplo, para la configuración regional en inglés, use un carácter de punto ('.') para especificar el decimal; para la configuración regional francesa, use un carácter de coma (",").
Binary Double** xsd:double si prec <=15
xsd:string si es anterior > a 15
Double
String
-
Entero binario** xsd:integer Int32 Compatible con procedimientos, funciones y paquetes.
Boolean xsd:boolean Boolean que acepta valores NULL
XMLTYPE xsd:string String Se admite para parámetros de procedimiento de nivel superior.

Los caracteres XML reservados como "<", ">" deben reemplazarse por su representación de entidad (<, >) al desarrollar aplicaciones en BizTalk y al usar el modelo de canal WCF. Esto no es necesario en el caso del modelo de servicio WCF.

*La forma en que aparecen estos tipos de datos de Oracle se ve afectada por la propiedad de enlace EnableSafeTyping .

**La forma en que se muestran estos tipos de datos numéricos de Oracle dentro de DataSets y cursores REF con tipo débil se ve afectado por la propiedad de enlace EnableSafeTyping .

Importante

  • La longitud máxima del valor en un tipo de datos de Oracle en el adaptador de Oracle Database está enlazada por la longitud máxima del valor admitido por ODP.NET para el tipo de datos de Oracle.
    • El adaptador de Oracle Database trata internamente los tipos de datos numéricos de Oracle dentro de udT como decimal de .NET. Sin embargo, en general (es decir, fuera de udT), el adaptador de Oracle Database trata internamente los tipos de datos numéricos de Oracle como OracleDecimal.

Escritura segura habilitada

En la tabla siguiente se muestra cómo se cambian los tipos de datos de Oracle que se ven afectados por la escritura segura cuando la propiedad de enlace EnableSafeTyping es true.

Tipo de datos de Oracle Tipo XSD Tipo de .NET Comentario
Date xsd:string String El valor debe expresarse en oracle NLS_DATE_FORMAT.
TimeStamp xsd:string String El valor debe expresarse en oracle NLS_TIMESTAMP_FORMAT.

Importante

Si se habilita la escritura segura, los tipos de datos numéricos de Oracle dentro de DataSets y los CURSORES REF con tipo débil siempre se exponen como cadenas.

Los tipos de datos de Oracle que no están en esta tabla se muestran de la misma manera si la escritura segura está habilitada o deshabilitada.

Validación

El adaptador de Microsoft BizTalk para oracle Database no realiza ninguna validación explícita en los valores que especifique para los tipos de datos de Oracle. Sin embargo, en función del tipo de datos de Oracle y de si la escritura segura está habilitada o deshabilitada, se puede realizar la validación implícita:

  • Al des serializar entre el XML pasado en un mensaje y los tipos de .NET que el adaptador usa internamente.

  • Por ODP.NET para algunos tipos de datos.