Testando Conversão de Dados com VALIDATE_CONVERSION - Oracle Database 12c R2

Fala pessoal,

Para quem está trabalhando com rotinas PL/SQL por exemplo, de importação/carga de dados no banco de dados Oracle e precisa validar se determinada informação conseguirá ser convertida para outro tipo de dado, o Oracle Database 12c Release 2 traz um novo recurso que é a função: VALIDATE_CONVERSION.

A função VALIDATE_CONVERSION determina se a "expr" informada como parâmetro pode ser convertida para o tipo de dado especificado.

Se "expr" puder ser convertido com sucesso, então esta função retorna 1; caso contrário, essa função retornará 0.

Se "expr" for avaliado como null, essa função retornará 1. Se ocorrer um erro durante a avaliação de expr, essa função retornará o erro.

Vamos ver um exemplo:

Conectamos em nosso banco de dados:

[oracle@serv01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Mon Jul 30 18:19:02 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

Testamos agora a conversão para um ponto flutuante e obtemos sucesso:

SQL> select validate_conversion('1234.56' as binary_float) from dual;

VALIDATE_CONVERSION('1234.56'ASBINARY_FLOAT)
--------------------------------------------
                                           1

Agora, no caso abaixo a conversão não poderá ser feita, não conseguimos converter um texto para ponto flutuante, retornando zero indicando que houve erro na validação:

             
SQL> select validate_conversion('ABC1' as binary_float) from dual;

VALIDATE_CONVERSION('ABC1'ASBINARY_FLOAT)
-----------------------------------------
                                        0

SQL>

Mais detalhes e opções veja a documentação da Oracle:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/VALIDATE_CONVERSION.html#GUID-DC485EEB-CB6D-42EF-97AA-4487884CB2CD

Ronaldo

Nenhum comentário:

Postar um comentário