Compartir a través de


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:
  • El tipo de datos Date de Oracle también puede contener un valor de hora.
  • No hay ningún equivalente de .NET para xsd:date.
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