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.