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