Esta página descreve exemplos que mostram o resultado da conversão do valor de origem e do tipo de dados para um tipo de dados BSON específico usando campos personalizados.
Comportamento
Os erros do tarefa de migração resultam em
BsonNullvalores para os campos afetados. A estratégia de tratamento nulo do seu campo não afeta esse comportamento.Sua tarefa de migração continua com erros, a menos que atinja o limite definido quando criou a tarefa de migração.
Ao definir Campos calculados e Personalizar campos de ID , o Relational Migrator mostra um tipo de dados inicial default de. Quando você executa um tarefa de migração, o Relational Migrator atualiza esse tipo de dados.
Inteiro
O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor 100 com um tipo de dados Integer .
Tipo de conversão | Valor de conversão |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Boolean
O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor true com um tipo de dados Boolean .
Tipo de conversão | Valor de conversão |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long
O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor 1233140483647 com um tipo de dados Long .
Tipo de conversão | Valor de conversão |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Decimal
O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor 26.55 com um tipo de dados Decimal .
Tipo de conversão | Valor de conversão |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String
O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor "Hello" com um tipo de dados String .
Tipo de conversão | Valor de conversão |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor "true" com um tipo de dados String .
Tipo de conversão | Valor de conversão |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Timestamp da Oracle
As colunas do Oracle TIMESTAMP(0-9) suportam as seguintes opções de tipo BSON. O exemplo utiliza o valor de origem 2025-01-01 12:34:56.123456789 com um tipo de dados TIMESTAMP(9).
Tipo de JSON | Comportamento | Exemplo de saída |
|---|---|---|
| Trunca com precisão de milissegundos. Para |
|
| Preserva a precisão total abaixo do milésimo de segundo como uma string. |
|
| Armazena milissegundos desde a Era UNIX como Int64. |
|
| Armazena microssegundos desde a Era UNIX como Int64. |
|
| Armazena nanossegundos desde a Era UNIX como Int64. |
|
TIMESTAMP da Oracle com fuso zona
As colunas do Oracle TIMESTAMP WITH TIME ZONE suportam as seguintes opções de tipo BSON. O exemplo utiliza o valor de origem 2025-01-01 12:34:00.000 -05:00.
Observação
Em versões anteriores a 1.15.4, selecionar Date para TIMESTAMP WITH TIME ZONE colunas armazenou a hora local sem mudar para UTC. A opção Date (UTC) atualizada muda o carimbo de data/hora para UTC usando o deslocamento de zona horário original.
Tipo de JSON | Comportamento | Exemplo de saída |
|---|---|---|
| Armazena o timestamp completo incluindo o deslocamento de zona horário como uma string. |
|
| Desloca o carimbo de data/hora para UTC usando o deslocamento de zona horário original. |
|
| Armazena a hora do relógio de parede local como está em UTC, ignorando o deslocamento do zona horário. |
|
| Cria dois subcampos: |
|
| Armazena milissegundos desde o tempo equivalente a UTC como Int64. |
|
| Armazena microssegundos desde o tempo equivalente a UTC como Int64. |
|
| Armazena nanossegundos desde o tempo equivalente a UTC como Int64. |
|
Oracle NUMBER
As colunas do Oracle NUMBER suportam as seguintes opções de tipo BSON. O tipo de BSON padrão depende da escala da coluna (s) e da precisão do número inteiro (p - s):
s > 0:Decimal(Decimal128)s <= 0e(p - s) < 10:Integer(BsonInt32)s <= 0e10 <= (p - s) < 19:Long(BsonInt64)s <= 0e(p - s) >= 19:Decimal(Decimal128)
O exemplo utiliza o valor de origem 123456789.
Tipo de JSON | Comportamento | Exemplo de saída |
|---|---|---|
| Trata 0 como falso e qualquer valor numérico diferente de zero como verdadeiro. |
|
| Interpreta o NUMBER como milissegundos desde a Era UNIX (1970-01-01T00:00:00Z). Valores grandes podem estourar e produzir uma data inválida. |
|
| Mapeia para BSON decimal128. Valores com mais de 34 dígitos significativos podem perder a precisão. |
|
| Converte para BSON double (64-bit floating ponto). Valores grandes ou de alta precisão podem perder a precisão devido aos arredondamentos IEEE 754. |
|
| Mapeia para BSON Int32. Os valores que excedem a faixa Int32 resultam em um erro. |
|
| Mapeia para BSON Int64. Os valores que excedem a faixa Int64 resultam em um erro. |
|
| Preserva todos os dígitos como uma string. Use quando a fidelidade numérica total for exigida. |
|
Precisão decimal128
Quando o valor de origem exceder 34 dígitos significativos, o mapeamento Decimal poderá perder a precisão. O exemplo a seguir utiliza o valor de origem 12345678901234567890123456789012345678 (38 dígitos significativos).
Tipo de JSON | Comportamento | Exemplo de saída |
|---|---|---|
| Valores com mais de 34 dígitos significativos podem perder a precisão. |
|
| Preserva todos os dígitos como uma string. Use quando a fidelidade numérica total for exigida. |
|
Oracle XLMTYPE
O Relational Migrator mapeia colunas Oracle XMLTYPE para BSON String, armazenando o documento XML como um valor de string.
Observação
Para migrar XMLTYPE colunas, certifique-se de que o arquivo do driver xdb.jar Oracle JDBC esteja disponível.