Principais comandos em Oracle

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;
SYSDATE
SYSDATE

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.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta

%d blogueiros gostam disto: