Referência de Funções (Pipeline)

As funções a seguir são usadas com os operadores de expressão e decisão em um pipeline.

Funções Aritméticas
FunçãoDescriçãoExemplo
ABS(numeric)Retorna a potência absoluta do valor numeric.ABS(-1)
CEIL(numeric)Retorna o menor inteiro não maior que o valor numericCEIL(-1,2)
EXP(numeric) Retorna E elevado à potência de numeric. A constante e é igual a 2.71828182845904, a base do logaritmo natural. EXP(2)
FLOOR(numeric)Retorna o maior inteiro não maior que o valor numeric.FLOOR(-1,2)
MOD(numeric1, numeric2)Retorna o resto depois que numeric1 é dividido por numeric2.MOD(8,2)
POW(numeric1, numeric2)Eleva numeric1 à potência de numeric2.POW(2,3)
ROUND(numeric1, numeric2)Retorna numeric1 arredondado para numeric2 casas decimais.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Retorna numeric1 truncado em numeric2 casas decimais.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Converte um expr em um número, com base em format e em locale opcional fornecidos. A configuração regional padrão é en-US. Tags de idioma suportadas.

Padrões de formato suportados:

  • 0: Um dígito
  • #: Um dígito, zero mostra como ausente
  • .: Espaço reservado para separador decimal
  • ,: Espaço reservado para separador de agrupamento
  • E: Separa mantissa e expoente para formatos exponenciais
  • -: Prefixo negativo padrão
  • ¤: Sinal de moeda; substituído pelo símbolo de moeda; se duplo, substituído pelo símbolo de moeda internacional; se presente em um padrão, o separador decimal monetário é usado no lugar do separador decimal

TO_NUMBER('5467.12') returns retorna 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') retorna -45677.7

FORMAT_NUMBER(value, format) Retorna uma representação formatada do valor fornecido.

FORMAT_NUMBER(123.4567, '^-09.3f') retorna 0123.4570

Funções Condicionais
FunçãoDescriçãoExemplo
NULLIF(value, value)Retorna nulo se os dois valores forem iguais, caso contrário, retorna o primeiro valor.NULLIF('ABC','XYZ') retorna ABC
ISNULL(value) Verifica o valor nulo. ISNULL('ABC') retorna false
ISNOTNULL(value) Verifica se há valor não nulo. ISNOTNULL('ABC') retorna true
Funções de Date e Hora
FunçãoDescriçãoExemplo
CURRENT_DATERetorna a data atual.CURRENT_DATE retorna a data de hoje
CURRENT_TIMESTAMPRetorna a data e hora atuais com o fuso horário da sessão.CURRENT_TIMESTAMP retorna a data de hoje e a hora atual
DATE_ADD(date, number)Retorna a data que é o number especificado de dias após o date especificado.DATE_ADD('2017-07-30', 1) retorna 2017-07-31
DATE_SUB(date, number) Retorna a data que é o number especificado de dias antes do date especificado. DATE_SUB('2017-07-30', 1) retorna 2017-07-29
DATE_FORMAT(expr, format[, locale])Formata uma expr de Data, com base no format e no locale opcional fornecidos. A configuração regional padrão é en-US. Tags de idioma suportadas.

Nas expressões do pipeline, format deve usar os códigos de formato strftime.

DATE_FORMAT(2020-10-13, '%d-%m-%Y') retorna '13-10-2020'.

O primeiro argumento é um objeto Date que representa 13 de outubro de 2020.

DATE_FORMAT(2018-junio-17, '%d/%B/%y', 'es-ES') retorna '17/junio/18'

WEEKOFYEAR(date) Retorna a semana da data no ano.

WEEKOFYEAR('2022-07-28') retorna 30

WEEKOFYEAR('2022-07-28 13:24:30') retorna 30

TO_DATE(string, format_string[, localeStr])Faz parsing da expressão de string com a expressão format_string para uma data. A configuração regional é opcional. O padrão é en-US. Tags de idioma suportadas.

Nas expressões do pipeline, format_string deve usar os códigos de formato strftime.

Exemplos de código de formato:

'%a %d-%m-%Y' retorna Tue 10-12-2019

'%a %d/%m/%Y' retorna Tue 10/12/2019

'%a %d/%m/%y' retorna Tue 10/12/19

TO_DATE('12 June 2018', '%m/%d/%Y') retorna 06/12/2018

TO_TIMESTAMP(expr, format_string[, localeStr])Converte um expr de VARCHAR em um valor de TIMESTAMP, com base no valor format_string e no valor localeStr opcional fornecidos.

Nas expressões do pipeline, format_string deve usar os códigos de formato strftime.

TO_TIMESTAMP('2020-10-10 11:10:10', '%A %d-%m-%Y, %H:%M:%S') retorna um objeto TIMESTAMP que representa Saturday 10-10-2020, 11:10:10
MONTHS_BETWEEN(start_date_expr, end_date_expr)

Retorna o número de meses entre start_date_expr e end_date_expr. start_date_expr e end_date_expr podem ser uma data, um timestamp ou uma string com um formato yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Um número inteiro será retornado se as duas datas forem o mesmo dia do mês ou se ambas forem o último dia em seus respectivos meses. Caso contrário, a diferença será calculada com base em 31 dias por mês.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') retorna 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') retorna 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') retorna 24

Funções Hierárquicas
FunçãoDescriçãoExemplo
TO_MAP(string,column[,string,column]*)Cria uma nova coluna do tipo Map. As colunas de entrada devem ser agrupadas como pares de chave/valor. As colunas de chave de entrada não podem ser nulas e devem ter todas o mesmo tipo de dados. As colunas de valor de entrada devem todas ter o mesmo tipo de dados.

TO_MAP('Ename',Expression_1.attribute1) retorna uma coluna de tipo Map: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) retorna uma coluna de tipo Map: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Cria uma nova coluna do tipo Struct. As colunas de entrada devem ser agrupadas como pares de chave/valor.

TO_STRUCT('Ename',Expression_1.attribute1) retorna {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) retorna {100, "John"}

TO_ARRAY(column[,column]*)Cria uma nova coluna como tipo Array. As colunas de entrada devem todas ter o mesmo tipo de dados.

TO_Array(Expression_1.attribute1) retorna [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) retorna ["John","Friend"]

Funções do Operador (Comparação)
FunçãoDescriçãoExemplo
ANDO operador lógico AND. Retorna verdadeiro se os dois operandos forem verdadeiros; caso contrário, retorna falso.(x = 10 AND y = 20) retorna "true" se x for igual a 10 e y for igual a 20. Se um dos dois não for verdadeiro, retornará "false"
ORO operador lógico OR. Retorna verdadeiro se um operando for verdadeiro ou ambos forem verdadeiros; caso contrário, retorna falso.(x = 10 OR y = 20) retorna "false" se x não for igual a 10 e também y não for igual a 20. Se um for verdadeiro, retornará "true"
NOTO operador lógico NOT.
IN Testa se uma expressão corresponde a uma lista de valores. FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
=Verifica a igualdade. Retorna verdadeiro se expr1 for igual a expr2; caso contrário, retorna falso.x = 10 retorna "true" quando o valor de x é 10, caso contrário, retorna "false"
>Verifica uma expressão maior que. Retorna verdadeiro se expr1 for maior que expr2.x > 10 retorna "true" se o valor de x for maior que 10, caso contrário, retorna "false"
>=Testa uma expressão maior que ou igual a. Retorna verdadeiro se expr1 for maior ou igual a expr2.x > =10 retorna "true" se o valor de x for maior ou igual a 10, caso contrário, retorna "false"
<Testa uma expressão menor que. Retorna verdadeiro se expr1 for menor que expr2.x < 10 retorna "true" se o valor de x for menor que 10, caso contrário, retornará "false"
<=Testa uma expressão menor que ou igual a. Retorna verdadeiro se expr1 for menor ou igual a expr2.x <= 10 retorna "true" se o valor de x for menor que 10, caso contrário, retorna "false"
Funções da String
FunçõesDescriçãoExemplo
CAST(value AS type)Retorna o valor especificado no tipo especificado.CAST("10" AS INT) retorna 10
CONCAT(string, string)Retorna os valores combinados de strings ou colunasCONCAT('Oracle','SQL') retorna OracleSQL
LOWER(string)Retorna a string com todas as letras alteradas para minúsculas.LOWER('ORACLE') retorna oracle
LENGTH(string)Retorna o tamanho do caractere da string ou o número de bytes de dados binários. O tamanho da string inclui espaços à direita.LENGTH('Oracle') retorna 6
LTRIM(string)Retorna a string com espaços à esquerda removidos.LTRIM(' Oracle')
REGEXP_EXTRACT(string, regexp[, RegexGroupIdx])Extrai um grupo que corresponde à expressão regular.REGEXP_EXTRACT('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) retorna 22
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx]) Pesquisa e extrai a string que corresponde a um padrão de expressão regular da string de entrada. Se o índice do grupo de captura opcional for informado, a função extrairá o grupo específico.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') retorna https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) retorna 22
REGEXP_REPLACE(string, regexp, rep]) Substitui todas as substrings da string que correspondem à expressão regular pelo rep
REPLACE(string, search, replacement)Substitui todas as ocorrências de search por replacement.

Se search não for encontrado na string, ela será retornada inalterada.

Se replacement não for especificado ou for uma string vazia, nada substituirá search que é removido de string.

REPLACE('input string value', 'input', 'output') retorna "output string value". Por exemplo:

REPLACE('ABCabc', 'abc', 'DEF') retorna ABCDEF

RTRIM(string)Retorna a string com espaços à esquerda removidos da direita.RTRIM('Oracle ')
SUBSTRING(string, start_position[, substring_length])Retorna a substring de string começando no start_position fornecido com o tamanho substring_length.

A numeração da posição de deslocamento começa com 0.

SUBSTRING('Hello Oracle', 6, 6) retorna Oracle
TO_CHAR(expr[, format_string])Converte uma data em uma string, com base no formato. Converte um número em uma string; nenhum formato é necessário.

Nas expressões do pipeline, format_string deve usar os códigos de formato strftime.

TO_CHAR(123) retorna 123

TO_CHAR(Date'2020-10-30', '%m/%d/%Y') retorna 10/30/2020.

O primeiro argumento é um objeto de Data que representa 30 de outubro de 2020.

TRIM(string) Retorna uma string com os caracteres de espaço à esquerda removidos. TRIM(' ORACLE ') retorna ORACLE
UPPER(string)Retorna uma string com todas as letras alteradas para maiúsculas.UPPER('oracle') retorna ORACLE
json_path(json_string, json_filter_path) Extrai um valor de uma estrutura JSON. CAST(json_path(SYS.RESPONSE_PAYLOAD, '$.key') AS String) retorna o valor da string do campo "key" em RESPONSE_PAYLOAD