Usando funções de conversão

Introdução ao Oracle SQL

Hadrien Lacroix

Content Developer

Tipos de dados

Tipos de dados definem que tipo de dado uma coluna pode conter.

Dados numéricos Dados de caractere Dados de data
AVG x
SUM x
MIN x x x
COUNT x x x

Funções de conversão convertem uma coluna de um tipo de dado para outro

Introdução ao Oracle SQL

Funções de conversão

  • Conversão de tipo de dado
    • Conversão implícita de tipo
    • Conversão explícita de tipo
Introdução ao Oracle SQL

Conversão implícita de tipo de dado

SQL converte tipos de dados automaticamente

SELECT 'Track length: ' || Milliseconds
FROM Track
| 'Track length: ' || Milliseconds     |
|--------------------------------------|
| Track length: 343719                 |
| Track length: 342562                 |
| ...                                  |
Introdução ao Oracle SQL

Conversão explícita de tipo de dado

Diagrama-resumo de funções de conversão e tipos de dados

Introdução ao Oracle SQL

Convertendo para dados de caractere

Converta uma string de número para formato de caractere usando TO_CHAR:

SELECT UnitPrice, TO_CHAR(UnitPrice, '$999.99') 
FROM InvoiceLine
| UnitPrice   | TO_CHAR(UnitPrice, '$9.99') |
|-------------|-----------------------------|
| 0.99        | $0.99                       |
| 1.99        | $1.99                       |
| ...         | ...                         |
  • $ : Sinal de dólar flutuante
  • . : Posição decimal
  • 9 : Especifica posição numérica; a quantidade de 9 define a largura
  • 0 : Zeros à esquerda
  • , : Posição da vírgula no número
Introdução ao Oracle SQL

Convertendo para dados de caractere

Converta uma string de data para formato de caractere usando TO_CHAR:

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY: Ano com quatro dígitos
  • YEAR: Ano por extenso
  • MM: Mês com dois dígitos
  • MONTH: Nome completo do mês
  • MON: Mês em 3 letras
  • DY: Dia da semana em 3 letras
  • DAY: Nome completo do dia
  • DD: Dia do mês (numérico)
Introdução ao Oracle SQL

Convertendo para dados numéricos

Converta uma string de caractere para formato numérico usando TO_NUMBER:

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $ : Sinal de dólar flutuante
  • . : Posição decimal
  • 9 : Especifica posição numérica; a quantidade de 9 define a largura
  • 0 : Zeros à esquerda
  • , : Posição da vírgula no número
Introdução ao Oracle SQL

Convertendo para dados de data

Converta uma string de caractere para formato de data usando TO_DATE:

SELECT TO_DATE('2016-01-31','YYYY-MM-DD')
FROM DUAL
| TO_DATE('2016-01-31','YYYY-MM-DD')     |
|----------------------------------------|
| 31-JAN-16                              |
  • YYYY: Ano com quatro dígitos
  • YEAR: Ano por extenso
  • MM: Mês com dois dígitos
  • MONTH: Nome completo do mês
  • MON: Mês em 3 letras
  • DY: Dia da semana em 3 letras
  • DAY: Nome completo do dia
  • DD: Dia do mês (numérico)
Introdução ao Oracle SQL

Qual conversão de tipo usar?

Placa de cautela

 

  • Sempre use conversão explícita
    • Mais fácil de ler e manter
    • O código continuará funcionando
Introdução ao Oracle SQL

Vamos praticar!

Introdução ao Oracle SQL

Preparing Video For Download...