TÓPICO 4 – USING CONVERSION FUNCTIONS AND CONDITIONAL EXPRESSIONS
Subtópico 4.1 – Descrever as funções de conversão (Describe various types of conversion functions that are available in SQL)
Subtópico 4.2 – Usar as funções TO_CHAR, TO_DATE e TO_NUMBER (Use the TO_CHAR, TO_NUMBER, and TO_DATE conversion functions)
Subtópico 4.3 – Aplicar expressões condicionais em cláusulas SELECT (Apply conditional expressions in a SELECT statementstatements)
Neste 4º tópico, falarei um pouco sobre funções de conversão no Oracle. No Oracle, existem 2 tipos de conversões, as explícitas e as implicitas. As explícitas são alcançadas através do uso de funções de conversão, que veremos mais adiante. Já as implícitas são realizadas internamente pelo Oracle, o que não é recomendado, visto que isso pode degradar a performance durante a execução de cláusulas SQL. Lembrando que o sobre expressões condicionais foi abordado em tópicos anteriores, logo não será abordado neste.
As principais, e mais usadas funções de conversão do Oracle são as seguintes:
- TO_CHAR
- TO_DATE
- TO_NUMBER
- TO_TIMESTAMP
- CAST
1) TO_CHAR
Função usada para conversões que resultarão em caracteres. Sua sintaxe é a seguinte:
Onde: N1 pode ser um tipo numérico ou de data. Essa função converte N1 em um VARCHAR2. FORMATO indica a mascara de conversão, muito usado, por exemplo, para converter datas para strings. NLS_PARAM representa o parâmetro de banco NLS_DATE_LANGUAGE que define a linguagem e formato em que será exibida a data. Abaixo temos alguns exemplos:
2) TO_DATE
Função usada para conversões que resultarão em datas. Sua sintaxe é:
Onde: D1 é uma string que será convertida para um tipo de dados DATE, usando o formato FORMATO. NLS_PARAM representa o parâmetro de banco NLS_DATE_LANGUAGE que define a linguagem e formato em que será exibida a data. Abaixo é possível ver alguns exemplos:
É importante atentar para o uso do parâmetro NLS_DATE_FORMAT que define a mascara padrão de data/hora para o banco ou sessão. A seguir estou definindo a mascara apenas para a minha sessão:
3) TO_NUMBER
Função usada para conversões de dados do tipo CHAR/VARCHAR2 que resultarão em números (dados tipo NUMBER. Sua sintaxe é:
Onde: E1 é a string a ser convertida. FORMATO indica o formado do número e NLS_PARAM representa o parâmetro de banco NLS_DATE_LANGUAGE que define a linguagem e formato em que será exibida a data. Abaixo é possível ver alguns exemplos:
4) TO_TIMESTAMP
Função usada para converter e formatar determinada string para o tipo de dados TIMESTAMP. Lembrando que o tipo de dados TIMESTAMP difere do DATE apenas na exibição de milisegundos (até 9). Sua sintaxe é:
Onde: D1 é a string a ser convertida. FORMATO é a mascara de formatação e NLS_PARAM representa o parâmetro de banco NLS_DATE_LANGUAGE que define a linguagem e formato em que será exibida a data. Abaixo é possível ver alguns exemplos:
5) CAST
Função que realiza diversos tipos de conversões. Sua sintaxe é:
CAST(E1 AS D1)
Onde E1 é o dado a ser convertido e D1 é o tipo de dados resultante da conversão. Abaixo é possível ver alguns exemplos:
É isso por enquanto. Lembro-lhes que a prática levará a uma maior intimidade e consequentemente facilidade em trabalhar com essas funções, de forma bem mais complexa da que foi abordada nos exemplos acima. Até mais. Keep Querying.
Olá, muito bom o post! Tenho um problema em PL/SQL que não consigo resolver: preciso fazer um insert de um select, mas tenho que converter o tipo de dados da origem para poder inseri-lo na minha tabelas de destino. Eu tentei oseguinte:
INSERT INTO TEMP_STG_PROJ_DIRETORIA (
ISSUE, –tipo de dado integer
CÓDIGO –tipo de dado integer
)
select
jiraprd6.customfieldvalue.issue,
TO_NUMBER (jiraprd6.customfieldvalue.stringvalue) — –tipo de dado varchar2
from jiraprd6.jiraissue
full outer join jiraprd6.customfieldvalue on
jiraprd6.jiraissue.id = jiraprd6.customfieldvalue.issue
where jiraissue.project in (‘11100′,’11800’)
Sou iniciante em pl/sql, poderia me ajudar?
Obrigado!