Esta página presenta ejemplos que muestran el resultado de convertir el valor de origen y el tipo de dato a un tipo de dato BSON específico mediante campos personalizados.
Comportamiento
Los errores de la tarea de migración dan como resultado
BsonNullvalores para los campos afectados. La estrategia de manejo de valores nulos para el campo no afecta este comportamiento.Tu tarea de migración continúa con errores a menos que alcance el umbral que definiste al crear la tarea de migración.
Al definir Campos Calculados y Personalizar campos de ID, Relational Migrator muestra un tipo de dato inicial de default. Cuando ejecutes un trabajo de migración, el Relational Migrator actualizará este tipo de datos.
entero
El siguiente ejemplo muestra resultados de aplicar la personalización del tipo de datos para el valor 100 con un tipo de datos Integer.
Tipo de conversión | Valor de conversión |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Booleano
El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor true con un tipo de dato Boolean.
Tipo de conversión | Valor de conversión |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long
El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor 1233140483647 con un tipo de dato Long.
Tipo de conversión | Valor de conversión |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Decimal
El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor 26.55 con un tipo de dato Decimal.
Tipo de conversión | Valor de conversión |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String
El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor "Hello" con un tipo de dato String.
Tipo de conversión | Valor de conversión |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor "true" con un tipo de dato String.
Tipo de conversión | Valor de conversión |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Oracle TIMESTAMP
Las columnas de Oracle TIMESTAMP(0-9) admiten las siguientes opciones de tipo BSON. El ejemplo usa el valor fuente 2025-01-01 12:34:56.123456789 con un tipo de dato TIMESTAMP(9).
Tipo BSON | Comportamiento | Salida de ejemplo |
|---|---|---|
| Se trunca a precisión de milisegundos. Para |
|
| Conserva la precisión total de submilisegundos como una string. |
|
| Almacena milisegundos desde el Unix epoch como Int64. |
|
| Almacena microsegundos desde la Unix epoch como Int64. |
|
| Guarda nanosegundos desde la Unix epoch como Int64. |
|
Oracle TIMESTAMP WITH TIME zona
Las columnas Oracle TIMESTAMP WITH TIME ZONE admiten las siguientes opciones de tipos BSON. El ejemplo utiliza el valor de origen 2025-01-01 12:34:00.000 -05:00.
Nota
En versiones anteriores a 1.15.4, seleccionar Date para las columnas TIMESTAMP WITH TIME ZONE almacenó la hora local sin cambiar a UTC. La opción actualizada Date (UTC) desplaza la marca de tiempo a UTC usando el desplazamiento de la zona horaria original.
Tipo BSON | Comportamiento | Salida de ejemplo |
|---|---|---|
| Almacena la marca de tiempo completa, incluido el desplazamiento de la zona horaria, como una string. |
|
| Desplaza la marca de tiempo a UTC utilizando la compensación de la zona horaria original. |
|
| Almacena el tiempo local del reloj tal cual en UTC, ignorando el desplazamiento de la zona horaria. |
|
| Crea dos subcampos: |
|
| Guarda milisegundos desde la hora equivalente a UTC como Int64. |
|
| Almacena los microsegundos desde la hora equivalente a UTC como Int64. |
|
| Almacena nanosegundos desde la hora equivalente a UTC como Int64. |
|
Oracle NUMBER
Las columnas de Oracle NUMBER admiten las siguientes opciones de tipo BSON. El tipo BSON predeterminado depende de la escala de la columna (s) y la precisión de enteros (p - s):
s > 0Decimal(Decimal128)s <= 0y(p - s) < 10:Integer(BsonInt32)s <= 0y10 <= (p - s) < 19:Long(BsonInt64)s <= 0y(p - s) >= 19:Decimal(Decimal128)
El ejemplo utiliza el valor de origen 123456789.
Tipo BSON | Comportamiento | Salida de ejemplo |
|---|---|---|
| Trata 0 como falso y cualquier valor numérico distinto de cero como verdadero. |
|
| Interpreta el NÚMERO como milisegundos desde la Unix epoch (1970-01-01T00:00:00Z). Los valores grandes pueden desbordarse y producir una fecha inválida. |
|
| Se asigna a BSON Decimal128. Los valores con más de 34 dígitos significativos pueden perder precisión. |
|
| Convierte a BSON Double (64-bit de coma flotante). Los valores grandes o de alta precisión pueden perder precisión debido al redondeo IEEE 754. |
|
| Se asigna a BSON Int32. Los valores que superan el rango de Int32 generan un error. |
|
| Se asigna a BSON Int64. Los valores que superan el rango de Int64 generan un error. |
|
| Conserva todos los dígitos como una string. Utilizar cuando se requiera una fidelidad numérica total. |
|
Precisión decimal128
Cuando el valor de origen supera los 34 dígitos significativos, la correspondencia Decimal puede perder precisión. El siguiente ejemplo utiliza el valor origen 12345678901234567890123456789012345678 (38 cifras significativas).
Tipo BSON | Comportamiento | Salida de ejemplo |
|---|---|---|
| Los valores con más de 34 cifras significativas pueden perder precisión. |
|
| Conserva todos los dígitos como una string. Utilizar cuando se requiera una fidelidad numérica total. |
|
Oracle XMLTYPE
Relational Migrator mapea las columnas de Oracle XMLTYPE a BSON String, almacenando el documento XML como un valor de string.
Nota
Para migrar XMLTYPE columnas, asegúrate de que esté disponible el archivo del controlador Oracle JDBC xdb.jar.