TÓPICO 3 – USING SINGLE-ROW FUNCTIONS TO CUSTOMIZE OUTPUT

  • Subtópico 3.1 – Describe various types of functions available in SQL
  • Subtópico 3.2 – Use character, number, and date functions in SELECT statements

Continuando a nossa saga, neste post falarei sobre mais um tópico da prova 1Z0-051, que aborda as diversas funções disponíveis para uso no Oracle.

1) FUNÇÕES DISPONÍVEIS NO SQL

Funções, de uma forma geral, são usadas processar uma entrada, resultando em uma saída processada de acordo com o tipo e propósito dessa função. Eu costumo fazer a seguinte comparação meio esdrúxula: Funções são como pratos de comida, ou seja, nós entramos com os ingrediêntes (parâmetros) e o resultado é um prato pronto (informação processada pela função). As funções mais comuns e possívelmente mais usadas no mundo Oracle são as seguintes:

* FUNÇÕES DE CARACTERES

– UPPER(S1)

Retorna a string S1, inteiramente em letras maiúsculas.

– LOWER(S1)

Retorna a string S1, inteiramente em letras minusculas.

– INITCAP(S1)

Transforma as iniciais de cada palavra de S1 em maiusculas. Retorna a string S1.

– CONCAT(S1, S2)

Concatena as strings S1 e S2 em uma única string.

– LPAD(S1, N1, [S2])

Preenche a esquerda da string S1, com o caractere determinado pela string S2, até que a string S1 fique do tamanho determinado em N1.

– RPAD(S1, N1, [S2])

Preenche a direita da string S1, com o caractere determinado pela string S2, até que a string S1 fique do tamanho determinado em N1.

– LTRIM(S1, [S2])

Remove ocorrências da string S2, da esquerda da string S1. Caso S2 seja omitido, a função remove os brancos a esquerda.

– RTRIM(S1, [S2])

Remove ocorrências da string S2, da direita da string S1. Caso S2 seja omitido, a função remove os brancos a direita.

– TRIM(INFO CHAR FROM FONTE)

Remove caracteres a esquerda, direita ou de ambos os lados de uma string. Também pode ser usado para remover caracteres em branco das extremidades de uma string. Onde:

  • info: Pode ser LEADING (Caracteres a esquerda), TRAILING (Caracteres a direita), BOTH(Caracteres de ambos os lados). Caso omitido, o padrão é BOTH.
  • char: Caractere a ser removido (Só pode ser um caractere)
  • source: A string fonte. Essa função retorna NULL caso esse parâmetro seja omitido.

– LENGTH(S1)

Retorna o tamanho da string S1. Ex:

– INSTR(S1, S2, [POS], [N1])

Localiza uma String (S2) dentro de outra string (S1). O parâmetro POS é a posição inicial de S1 onde se iniciará a procura da string S2. N1 é a ocorrência de S2 em S1. Essa função retorna a posição da string S2 dentro da string S1.

– SUBSTR(S1, POS, [TAM])

Extrai uma substring de S1, iniciando da posição POS, e continuando por TAM caracteres. Caso TAM seja omitido, S1 será verificada por completo até seu fim.

* FUNÇÕES NUMÉRICAS

– ROUND(N, [I])

Arredonda o número N até I casas decimais. Caso I seja omitido, o valor default é 0, arredondando assim N para o número inteiro mais próximo. Caso I seja negativo, N é arredondado I casas para a esquerda.:

– TRUNC(N, [I])

Remove as casas decimais de N, deixando apenas I casas decimais. Caso I seja omitido, remove todas as casas decimais. É importante mencionar que essa cláusula não arredonda, mas apenas remove as casas decimais:

– MOD(N1, N2)

Retorna o resto da divisão de N1 por N2. Ex:

* FUNÇÕES DE DATAS

– SYSDATE

Retorna a data/hora baseada no sistema operacional cujo ORACLE está instalado.

– ROUND(D1, [FOR])

Arredonda a data D1 para o valor de data mais próximo, especificado pelo formato FOR. O FOR especifica o nível de detalhes cuja data D1 será arredondado.:

– TRUNC(D1, [FOR])

Igual ao ROUND, com a diferença que de sempre se arredonda para baixo.

– NEXT_DAY(D1, DS)

Retorna uma data válida representando a primeira ocorrência do dia DS a partir da data D1.

– LAST_DAY(D1)

Retorna o último dia do mês, a partir da data D1.

– ADD_MONTHS(D1, M)

Adiciona M meses a data D1. Para subtrair meses usando o ADD_MONTHS, basta inserir um número negativo em M.

– MONTHS_BETWEEN(D1, D2)

Mostra o número de meses entre as datas D1, e D2. Ex:

– NUMTOYMINTERVAL(N1, UI)

Transforma o número N1 em um valor que represente a quantidade de tempo representada por UI. UI pode ter os seguintes valores: YEAR e MONTH. O valor retornado pela função é do tipo INTERVAL YEAR TO MONTH.

– NUMTODSINTERVAL(N1, UI)

Transforma o número N1 em um valor que represente a quantidade de tempo representada por UI. UI pode ter os seguintes valores: DAY, HOUR, MINUTE e SECOND. O valor retornado pela função é do tipo INTERVAL DAY TO SECOND.

– CURRENT_DATE

Retorna a data atual no tipo DATE dentro do Timezone da sessão

– CURRENT_TIMESTAMP

Retorna a data atual no tipo TIMESTAMP WITH TIMEZONE, dentro do Timezone da sessão.

– LOCALTIMESTAMP(T)

Retorna a hora local da sessão do usuário, sem o TIMEZONE, no formato TIMESTAMP. Retorna com a precisão de T milisegundos (0 a 9)

– SYSTIMESTAMP

Retorna a data do sistema operacional cujo banco de dados está instalado. O retorno é do tipo TIMESTAMP WITH TIME ZONE.

– NEW_TIME(D1, T1, T2)

Converte a data D1 do Timezone T1 para o Timezone T2.

Então é isso. Até o próximo post.