Principais comandos em Oracle

Olá pessoal…

Hoje irei mostrar alguns dos principais comandos em Oracle (versão 11g utilizada) para manipulação de dados, como funções do tipo TO_CHAR.


01) TO_CHAR

Converte valores em texto, o || serve para concatenar strings

SELECT ‘R$ ‘ || TO_CHAR(12.7+13.5) AS PRECOFROM DUAL;
TO_CHAR

TO_CHAR

Pode se também converter datas

SELECT TO_CHAR(SYSDATE,‘DD/MM/YYYY HH24:MI:SS D DY DAY’) AS HOJEFROM DUAL;
TO_CHAR para datas

TO_CHAR para datas

02) TO_DATE

Converte texto em Data-Hora

SELECT TO_DATE(’21/08/2013 14:30:00′, ‘DD/MM/YYYY HH24:MI:SS’) AS DIAFROM DUAL;
TO_DATE

TO_DATE

03) TO_NUMBER

Converte texto em número

SELECT TO_NUMBER(‘34,47’) AS VALORFROM DUAL;
TO_NUMBER

TO_NUMBER

04) INITCAP

Deixa o primeiro caracter da string em maiúsculo

SELECT INITCAP(‘DANIEL ATILIO’) AS NOMEFROM DUAL;
INITCAP

INITCAP

05) LOWER

Deixa todos os caracteres da string em minúsculo

SELECT LOWER(‘DANIEL ATILIO’) AS NOMEFROM DUAL;
LOWER

LOWER

06) UPPER

Deixa todos os caracteres da string em maiúsculo

SELECT UPPER(‘daniel atilio’) AS NOMEFROM DUAL;
UPPER

UPPER

07) LPAD

Adiciona caracteres a esquerda com um tamanho definido, ou quebra a string atual com um tamanho pré-determinado

SELECT LPAD(‘Daniel’,3) AS APELIDOFROM DUAL;
LPAD

LPAD

Abaixo um exemplo utilizando traço

SELECT LPAD(‘Daniel’,7,‘-‘) AS NOMEFROM DUAL;
LPAD com traço

LPAD com traço

08) RPAD

Adiciona caracteres a direita com um tamanho definido, ou quebra a string atual com um tamanho pré-determinado

SELECT RPAD(‘Daniel’,3) AS APELIDOFROM DUAL;
RPAD

RPAD

Abaixo um exemplo utilizando traço

SELECT RPAD(‘Daniel’,7,‘-‘) AS NOMEFROM DUAL;
RPAD com traço

RPAD com traço

09) LTRIM

Retira espaços da esquerda da string

SELECT   LTRIM(‘    Daniel    ‘) AS NOMEFROM DUAL;
LTRIM

LTRIM

10) RTRIM

Retira espaços da direita da string

SELECT   RTRIM(‘    Daniel    ‘) AS NOMEFROM DUAL;
RTRIM

RTRIM

11) TRIM

Retira espaços da esquerda e da direita da string

SELECT   TRIM(‘    Daniel    ‘) AS NOMEFROM DUAL; 
TRIM

TRIM

12) SUBSTR

Pega uma parte da string, uma substring, através da posição inicial e do total de caracteres

SELECT   SUBSTR(‘Daniel Atilio’,8,6) AS SOBRENOMEFROM DUAL;
SUBSTR

SUBSTR

13) INSTR

Retorna a posição da substring procurada, conforme posição inicial e o número de vezes encontrado

SELECT   INSTR(‘DANIEL ATILIO’,‘I’,1,2) AS NOMEFROM DUAL;
INSTR

INSTR

14) REPLACE

Troca uma parte da string por outra

SELECT   REPLACE(‘DANIEL ATILIO’,‘ATILIO’,‘HUDSON’) AS NOMEFROM DUAL;
REPLACE

REPLACE

15) TRANSLATE

Traduz uma String, conforme caracteres buscados e suas respectivas conversões

SELECT   TRANSLATE(‘DANIEL ATILIO’, ‘AIOED’, ‘4103>’) AS TRADUCAOFROM DUAL;
TRANSLATE

TRANSLATE

16) LENGTH

Retorna o tamanho da String

SELECT   LENGTH(‘DANIEL ATILIO’) AS TAMANHOFROM DUAL;
LENGTH

LENGTH

17) ABS

Retorna o valor absoluto do número

SELECT   ABS(-37.42) AS ABSOLUTOFROM DUAL;
ABS

ABS

18) CEIL

Retorna o maior número inteiro através de um número passado

SELECT   CEIL(5.99) AS INTEIROFROM DUAL;
CEIL

CEIL

Também é possível utilizar com números negativos

SELECT   CEIL(-5.30) AS INTEIROFROM DUAL;
CEIL com valor negativo

CEIL com valor negativo

19) FLOOR

Retorna o menor número inteiro através de um número passado

SELECT   FLOOR(5.99) AS INTEIROFROM DUAL;
FLOOR

FLOOR

Também é possível utilizar com números negativos

SELECT   FLOOR(-5.30) AS INTEIROFROM DUAL;
FLOOR com valor negativo

FLOOR com valor negativo

20) MOD

Retorna o resto de uma divisão

SELECT   MOD (15,4) AS RESTOFROM DUAL;
MOD

MOD

21) TRUNC

Retorna um valor truncado com casas decimais

SELECT   TRUNC(125.8154, 2) AS VALORFROM DUAL;
TRUNC

TRUNC

22) SYSDATE

Retorna o dia atual

SELECT SYSDATE AS HOJEFROM DUAL;

23) POWER

Retorna um valor em sua potencia, por exemplo 2 elevado a 5

SELECT  POWER(2,5) AS POTENCIAFROM DUAL;
POWER

POWER

24) SQRT

Retorna a raíz quadrada de um valor

SELECT   SQRT(144) AS RAIZFROM DUAL;
SQRT

SQRT

25) ROUND

Retorna um valor arredondado, conforme casas decimais passadas por referência

SELECT   ROUND(15.194,1) AS ARREDONDADOFROM DUAL;
ROUND

ROUND

Abaixo um exemplo com duas casas decimais

SELECT   ROUND(15.194,2) AS ARREDONDADOFROM DUAL;
ROUND com duas casas decimais

ROUND com duas casas decimais

26) LAST_DAY

Retorna o último dia do mês corrente

SELECT   LAST_DAY(SYSDATE) AS ULTIMO_DIAFROM DUAL;
LAST_DAY

LAST_DAY

27) NEXT_DAY

Retorna o próxima dia conforme parâmetros (por exemplo, a próxima terça-feira)

SELECT   NEXT_DAY(’22-AGO-2013′,‘TERCA-FEIRA’) AS PROXIMO_DIAFROM DUAL;
NEXT_DAY

NEXT_DAY

28) ADD_MONTHS

Retorna a data somando um número de meses

SELECT   ADD_MONTHS(SYSDATE,2) AS DOIS_MESESFROM DUAL;
ADD_MONTHS

ADD_MONTHS

29) MONTHS_BETWEEN

Retorna a quantidade de meses entre duas datas

SELECT   MONTHS_BETWEEN (’22/08/2013′, ’22/12/2013′ ) AS ENTREFROM DUAL;
MONTHS_BETWEEN

MONTHS_BETWEEN

30) DECODE

Semelhante ao IF/ELSE, onde é testado um bloco de código, os possíveis resultados, e as strings que serão mostradas

SELECT   DECODE(TRUNC (10/5),0, ‘ 0/5 = 0’,1, ‘ 5/5 = 1’,

2, ’10/5 = 2′,

‘OUTRO’) AS RESULTADO

FROM DUAL;

DECODE

DECODE

31) NVL

Se a string estiver vazia, retorna um texto passado por parâmetro

SELECT   NVL(,‘STRING VAZIA’) AS RESULTADOFROM DUAL;
NVL

NVL

Abaixo um exemplo com string não vazia

SELECT   NVL(‘DANIEL’,‘STRING VAZIA’) AS RESULTADOFROM DUAL;
NVL com uma string não vazia

NVL com uma string não vazia

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação