Tipos de datos básicos de Oracle
En este tema se describe cómo el adaptador de Microsoft BizTalk para Oracle E-Business Suite expone los tipos de datos básicos de Oracle.
Tipos de datos de Oracle admitidos
El adaptador de Oracle E-Business 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, habilite la propiedad de enlace EnableSafeTyping (deshabilitada de forma predeterminada). Para obtener más información sobre las propiedades de enlace del adaptador de Oracle E-Business, vea Leer sobre las propiedades de enlace del adaptador de BizTalk para Oracle E-Business Suite.
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[] | - |
Char | xsd:string | String | - |
Clob | xsd:string | String | - |
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. Nota: El adaptador de Oracle E-Business expone el tipo de datos Fecha de Oracle como xsd:dateTime en lugar de xsd:date porque:
|
Flotador** | xsd:float si prec <=7 xsd:double si prec > 7 y <=15 xsd:string si es anterior a > 15 |
Float Double String |
Debe especificar el valor coherente con el formato especificado para el carácter decimal y el separador de grupo en la propiedad de enlace NumericCharacters en la propiedad de enlace MlsSettings . Si no se especifica ningún valor para la propiedad de enlace NumericCharacters , el adaptador usa la configuración de MLS para el cliente de ODP.NET en el mismo equipo donde está instalado el adaptador. |
IntervalDS | xsd:string xsd:duration si está dentro de un UDT |
String Intervalo de tiempo si está dentro de un UDT |
El adaptador devuelve los datos IntervalDS como una cadena mediante el método OracleIntervalDS.ToString. El valor debe expresarse en formato nativo de Oracle: Day HH:MI:SSxFF (por ejemplo, "5 15:30:12.99"). |
IntervalYM | xsd:string xsd:long si está dentro de un UDT |
String Long if inside an UDT |
El adaptador devuelve los datos IntervalYM como una cadena mediante el método OracleIntervalYM.ToString. El valor debe expresarse en formato nativo de Oracle: Year-Month; por ejemplo, "1-2" (1 año y 2 meses). |
long | xsd:string | String | 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 de objetos grandes (LOB) en su lugar. Por lo tanto, al realizar operaciones en la base de datos de Oracle mediante el adaptador de base de datos de Oracle, 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 | |
Número** | xsd:decimal si prec <=28 xsd:string si prec > 28 |
Decimal String |
- |
NVarchar2 | xsd:string | String | - |
Raw | xsd:base64Binary | Byte[] | |
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 |
Cuando se expone como cadena (prec > 7), el valor debe expresarse en Oracle NLS_TIMESTAMP_FORMAT. Puede especificar el formato de cadena para los tipos de datos TimeStamp en la propiedad de enlace TimeStampFormat en la propiedad de enlace MlsSettings . Si no se especifica ningún valor para la propiedad de enlace TimeStampFormat , el adaptador usa la configuración de MLS para el cliente de ODP.NET en el mismo equipo donde está instalado el adaptador. Los valores de 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 Oracle NLS_TIMESTAMP_TZ_FORMAT. Puede especificar el formato de cadena para los tipos de datos TimeStampLTZ en la propiedad de enlace TimeStampTZFormat en la propiedad de enlace MlsSettings . Si no se especifica ningún valor para la propiedad de enlace TimeStampTZFormat , el adaptador usa la configuración de MLS para el cliente de ODP.NET en el mismo equipo donde está instalado el adaptador. |
TimeStampTZ | xsd:string xsd:dateTime si está dentro de un UDT |
String DateTime si está dentro de un UDT |
Fuera de un UDT: el valor debe expresarse en Oracle NLS_TIMESTAMP_TZ_FORMAT. Puede especificar el formato de cadena para los tipos de datos TimeStampTZ en la propiedad de enlace TimeStampTZFormat en la propiedad de enlace MlsSettings . Si no se especifica ningún valor para la propiedad de enlace TimeStampTZFormat , el adaptador usa la configuración de MLS para el cliente de ODP.NET en el mismo equipo donde está instalado el adaptador. |
Decimal** | xsd:decimal si prec <=28 xsd:string si prec > 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 coherente con el formato especificado para el carácter decimal y el separador de grupo en la propiedad de enlace NumericCharacters en la propiedad de enlace MlsSettings . Si no se especifica ningún valor para la propiedad de enlace NumericCharacters , el adaptador usa la configuración de MLS para el cliente de ODP.NET en el mismo equipo donde está instalado el adaptador. |
Binary Double** | xsd:double si prec <=15 xsd:string si es anterior a > 15 |
Double String |
- |
Entero binario** | xsd:integer | Int32 | |
Boolean | xsd:boolean | Boolean que acepta valores NULL | |
XMLTYPE | xsd:string | String | Se admite para los 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 estos tipos de datos numéricos de Oracle dentro de DataSets y cursores REF débilmente tipados se ven afectados 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 E-Business está enlazada por la longitud máxima del valor admitido por ODP.NET para el tipo de datos de Oracle.
- El adaptador de Oracle E-Business trata internamente los tipos de datos numéricos de Oracle dentro de udT como decimal de .NET. Sin embargo, en general (fuera de udT), el adaptador de Oracle E-Business 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.
Nota
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.
Tipo de datos de Oracle | Tipo XSD | Tipo de .NET | Comentario |
---|---|---|---|
Date | xsd:string | String | El valor debe expresarse en oracle NLS_DATE_FORMAT. Puede especificar el formato de los tipos de datos Date en la propiedad de enlace DateFormat en la propiedad de enlace MlsSettings . Si no se especifica ningún valor para la propiedad de enlace DateFormat , el adaptador usa la configuración de MLS para el cliente de ODP.NET en el mismo equipo donde está instalado el adaptador. |
TimeStamp | xsd:string | String | El valor debe expresarse en oracle NLS_TIMESTAMP_FORMAT. Puede especificar el formato de cadena para los tipos de datos TimeStamp en la propiedad de enlace TimeStampFormat en la propiedad de enlace MlsSettings . Si no se especifica ningún valor para la propiedad de enlace TimeStampFormat , el adaptador usa la configuración de MLS para el cliente de ODP.NET en el mismo equipo donde está instalado el adaptador. |
Importante
Si se habilita la escritura segura, los tipos de datos numéricos de Oracle dentro de DataSets y cursores REF con tipo débil siempre se exponen como cadenas.
Validación
El adaptador de Oracle E-Business 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 un mensaje y los tipos de .NET que el adaptador usa internamente.
Por ODP.NET para algunos tipos de datos.
Consulte también
Mensajes y esquemas de mensaje para el adaptador de BizTalk para Oracle E-Business Suite