Referência de Funções (Data Flow)
As funções a seguir são usadas com operadores em um fluxo de dados para permitir que você crie expressões.
| Função | Descrição | Exemplo | 
|---|---|---|
| COUNT(value[, value]*) | Retorna o número de linhas para as quais uma ou mais expressões fornecidas são todas não nulas. | COUNT(expr1) | 
| COUNT(*) | Retorna o número total de linhas recuperadas, incluindo linhas contendo nulos. | COUNT(*) | 
| MAX(value) | Retorna o valor máximo do argumento. | MAX(expr) | 
| MIN(value) | Retorna o valor mínimo do argumento. | MIN(expr) | 
| SUM(numeric) | Retorna a soma calculada com base nos valores de um grupo. | SUM(expr1) | 
| AVG(numeric) | Retorna a média de valores numéricos em uma expressão. | AVG(AGGREGATE_1.src1.attribute1) | 
| LISTAGG(column[, delimiter]) WITHIN GROUP (order_by_clause) | Concatena valores da coluna de entrada com o delimitador especificado, para cada grupo com base na cláusula de ordem. coluna contém os valores que você deseja concatenar juntos no resultado. O delimitador separa os valores de coluna no resultado. Se um delimitador não for fornecido, um caractere vazio será usado. order_by_clause determina a ordem em que os valores concatenados são retornados. Essa função só pode ser usada como agregador e pode ser usada com agrupamento ou sem agrupamento. Se você usar sem agrupamento, o resultado será uma única linha. Se você usar com um agrupamento, a função retornará uma linha para cada grupo. | Considere uma tabela com duas colunas,  Exemplo 1: Sem agrupamento 
 Exemplo 2: Agrupar pelo  
  | 
| Função | Descrição | Exemplo | 
|---|---|---|
| FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) | Retorna o valor avaliado na linha que é a primeira do quadro da janela. | FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING)retorna o primeiro valor BANK_IDem uma janela na qual as linhas são calculadas como linha atual e 1 linha após essa linha, particionadas porBANK_IDe em ordem crescente deBANK_NAME. | 
| LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) | Retorna o valor avaliado na linha em um determinado deslocamento antes da linha atual dentro da partição. Se não houver essa linha, o valor padrão será retornado. O deslocamento e o padrão são avaliados em relação à linha atual. Se omitido, o desvio é padronizado como 1 e o padrão é NULL. | LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC)retorna o valorBANK_IDda segunda linha antes da linha atual, particionada porBANK_IDe em ordem decrescente deBANK_NAME. Se não houver esse valor,helloserá retornado. | 
| LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) | Retorna o valor avaliado na linha que é a última do quadro da janela. | LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING)retorna o último valorBANK_IDem uma janela na qual as linhas são calculadas como a linha atual e 1 linha após essa linha, particionada porBANK_IDe em ordem crescente deBANK_NAME. | 
| LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) | Retorna o valor avaliado na linha em um determinado deslocamento após a linha atual dentro da partição. Se não houver essa linha, o valor padrão será retornado. O deslocamento e o padrão são avaliados em relação à linha atual. Se omitido, o desvio é padronizado como 1 e o padrão é NULL. | LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME)retorna o valorBANK_IDda segunda linha após a linha atual, particionada porBANK_IDe em ordem crescente deBANK_NAME. Se não houver esse valor,helloserá retornado. | 
| RANK() OVER([ partition_clause ] order_by_clause) | Retorna a classificação da linha atual com lacunas, contando a partir de 1. | RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME)retorna a classificação de cada linha dentro do grupo de partições deBANK_ID, em ordem crescente deBANK_NAME. | 
| ROW_NUMBER() OVER([ partition_clause ] order_by_clause) | Retorna o número exclusivo da linha atual dentro de sua partição, contando a partir de 1. | ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME)retorna o número de linha exclusivo de cada linha dentro do grupo de partições deBANK_ID, em ordem crescente deBANK_NAME. | 
| Função | Descrição | Exemplo | 
|---|---|---|
| ABS(numeric) | Retorna a potência absoluta do valor numeric. | ABS(-1) | 
| CEIL(numeric) | Retorna o menor inteiro não maior que o valor numeric | CEIL(-1,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 pornumeric2. | MOD(8,2) | 
| POWER(numeric1, numeric2) | Eleva numeric1à potência denumeric2. | POWER(2,3) | 
| ROUND(numeric1, numeric2) | Retorna numeric1arredondado paranumeric2casas decimais. | ROUND(2.5,0) | 
| TRUNC(numeric1, numeric2) | Retorna numeric1truncado emnumeric2casas decimais. | TRUNC(2.5,0) | 
| TO_NUMBER(expr[, format, locale]) | Converte um exprem um número, com base emformate emlocaleopcional fornecidos. A configuração regional padrão éen-US. Tags de idioma suportadas.Padrões de formato suportados: 
 | 
 
 | 
Somente o operador de Expressão suporta funções de matriz.
| Função | Descrição | Exemplo | 
|---|---|---|
| ARRAY_POSITION(array(...), element) | Retorna a posição da primeira ocorrência do elemento fornecido no array fornecido. A posição não é baseada em zero, em vez disso, começa com 1. | ARRAY_POSITION(array(3, 2, 1, 4, 1), 1)retorna3 | 
| REVERSE(array(...)) | Retorna a matriz fornecida de elementos em uma ordem inversa. | REVERSE(array(2, 1, 4, 3))retorna[3,4,1,2] | 
| ELEMENT_AT(array(...), index) | Retorna o elemento do array fornecido na posição de índice fornecida. O índice não é baseado em zero, em vez disso, começa com 1. Se  | ELEMENT_AT(array(1, 2, 3), 2)retorna2 | 
| Função | Descrição | Exemplo | 
|---|---|---|
| COALESCE(value, value [, value]*) | Retorna o primeiro argumento não nulo, se ele existir; caso contrário, retorna um nulo. | COALESCE(NULL, 1, NULL)retorna1 | 
| NULLIF(value, value) | Retorna nulo se os dois valores forem iguais, caso contrário, retorna o primeiro valor. | NULLIF('ABC','XYZ')retornaABC | 
| Função | Descrição | Exemplo | 
|---|---|---|
| CURRENT_DATE | Retorna a data atual. | CURRENT_DATEretorna a data de hoje, como2023-05-26 | 
| CURRENT_TIMESTAMP | Retorna a data atual e a hora do fuso horário da sessão. | CURRENT_TIMESTAMPretorna a data e a hora atuais de hoje, como2023-05-26 12:34:56 | 
| DATE_ADD(date, number_of_days) | Retorna a data que é o numberespecificado de dias após odateespecificado. | DATE_ADD('2017-07-30', 1)retorna2017-07-31 | 
| DATE_FORMAT(expr, format[, locale]) | Formata uma  Padrões de formato de data suportados: 
 | 
 
 | 
| DAYOFMONTH(date) | Retorna o dia da data no mês. | DAYOFMONTH('2020-12-25')retorna25 | 
| DAYOFWEEK(date) | Retorna o dia da data na semana. | DAYOFWEEK('2020-12-25')retorna6para sexta-feira. Nos Estados Unidos, o domingo é considerado 1, a segunda-feira é 2 e assim por diante. | 
| DAYOFYEAR(date) | Retorna o dia da data no ano. | DAYOFYEAR('2020-12-25')retorna360 | 
| WEEKOFYEAR(date) | Retorna a semana da data no ano. | 
 
 | 
| HOUR(datetime) | Retorna o valor da hora da data/hora. | HOUR('2020-12-25 15:10:30')retorna15 | 
| LAST_DAY(date) | Retorna o último dia do mês da data. | LAST_DAY('2020-12-25')retorna31 | 
| MINUTE(datetime) | Retorna o valor do minuto da data e hora. | HOUR('2020-12-25 15:10:30')retorna10 | 
| MONTH(date) | Retorna o valor do mês da data. | MONTH('2020-06-25')retorna6 | 
| QUARTER(date) | Retorna o trimestre do ano em que a data está. | QUARTER('2020-12-25')retorna4 | 
| SECOND(datetime) | Retorna o valor de segundo da data e hora. | SECOND('2020-12-25 15:10:30')retorna30 | 
| TO_DATE(string, format_string[, localeStr]) | Faz parsing da expressão de string com a expressão format_stringpara uma data. A configuração regional é opcional. O padrão éen-US. Tags de idioma suportadas.Nas expressões do pipeline,  
 | 
 
 | 
| TO_TIMESTAMP(expr, format_string[, localeStr]) | Converte um exprde VARCHAR em um valor de TIMESTAMP, com base no valorformat_stringe no valorlocaleStropcional fornecidos.Nas expressões do pipeline,  
 | TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss')retorna um objeto TIMESTAMP que representa11am 10:10 Oct 11th, 2020 | 
| WEEK(date) | Retorna o valor da semana da data. | WEEK('2020-06-25')retorna4 | 
| YEAR(date) | Retorna o valor do ano da data. | YEAR('2020-06-25')retorna2020 | 
| ADD_MONTHS(date_expr, number_months) | Retorna a data após a adição do número especificado de meses à data, timestamp ou string especificada com um formato yyyy-MM-ddouyyyy-MM-dd HH:mm:ss.SSS. | 
 
 | 
| MONTHS_BETWEEN(start_date_expr, end_date_expr) | Retorna o número de meses entre  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. | 
 
 
 | 
| FROM_UTC_TIMESTAMP(time_stamp, time_zone) | Interpreta uma data, um timestamp ou uma string como horário UTC e converte esse horário em um timestamp no fuso horário especificado. Para string, use um formato como:  O formato de fuso horário é um ID de zona baseado em região (por exemplo, 'área/cidade', como 'Asia/Seoul', ou um deslocamento de fuso horário (por exemplo, UTC+02). | FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1')retorna2017-07-14 03:40:00.0 | 
| TO_UTC_TIMESTAMP(time_stamp, time_zone) | Converte uma data, um timestamp ou uma string no fuso horário especificado em um timestamp UTC. Para string, use um formato como:  O formato de fuso horário é um ID de zona baseado em região (por exemplo, 'área/cidade', como 'Asia/Seoul'), ou um deslocamento de fuso horário (por exemplo, UTC+02). | TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1')retorna2017-07-14 01:40:00.0 | 
| FROM_UNIXTIME(unix_time[, fmt]) | Converte a época ou o horário especificado do Unix em uma string que representa o timestamp desse momento no fuso horário do sistema atual e no formato especificado. Observação: O horário do Unix é o número de segundos decorridos desde 1o de janeiro de 1970 00:00:00 UTC. Se  | 
 
 O fuso horário padrão é PST nos exemplos | 
| UNIX_TIMESTAMP([time_expr[, fmt]]) | Converte o horário atual ou especificado em um timestamp do Unix em segundos. 
 Se  Se  | 
 O fuso horário padrão é PST neste exemplo | 
| INTERVAL 'year' YEAR[(year_precision)] | Retorna um período em anos. year_precision é o número de dígitos no campo year; ele varia de 0 a 9. Se year_precision for omitido, o padrão será 2 (deve ser menor que 100 anos). | 
 
 | 
| INTERVAL 'year month' YEAR[(year_precision)] TO MONTH | Retorna um período em anos e meses. Use para armazenar um período usando os campos year e month. year_precision é o número de dígitos no campo year; ele varia de 0 a 9. Se year_precision for omitido, o padrão será 2 (deve ser menor que 100 anos). | INTERVAL '100-5' YEAR(3) TO MONTHretorna um intervalo de 100 anos e 5 meses. Especifique a precisão do ano principal de 3. | 
| INTERVAL 'month' MONTH[(month_precision)] | Retorna um período em meses. month_precision é o número de dígitos no campo mês; ele varia de 0 a 9. Se month_precision for omitido, o padrão será 2 (deve ser menor que 100 anos). | INTERVAL '200' MONTH(3)retorna um intervalo de 200 meses. Especifique a precisão do mês de 3. | 
| INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)] | Retorna um período em termos de dias, horas, minutos e segundos. day_precision é o número de dígitos no campo day; ele varia de 0 a 9. O padrão é 2. fractional_seconds_precision é o número de dígitos na parte fracionária do valor do segundo no campo time; ele varia de 0 a 9. | INTERVAL '11 10:09:08.555' DAY TO SECOND(3)retorna um intervalo de 11 dias, 10 horas, 09 minutos, 08 segundos e 555 milésimos de segundo | 
| INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)] | Retorna um período em termos de dias, horas e minutos. day_precision é o número de dígitos no campo day; ele varia de 0 a 9. O padrão é 2. minute_precision é o número de dígitos no campo minute; ele varia de 0 a 2. O padrão é 2. | INTERVAL '11 10:09' DAY TO MINUTEretorna um intervalo de 11 dias, 10 horas e 09 minutos | 
| INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)] | Retorna um período em termos de dias e horas. day_precision é o número de dígitos no campo day; ele varia de 0 a 9. O padrão é 2. hour_precision é o número de dígitos no campo hora; ele varia de 0 a 2. O padrão é 2. | INTERVAL '100 10' DAY(3) TO HOURretorna um intervalo de 100 dias e 10 horas | 
| INTERVAL 'day' DAY[(day_precision)] | Retorna um período em termos de dias. day_precision é o número de dígitos no campo day; ele varia de 0 a 9. O padrão é 2. | INTERVAL '999' DAY(3)retorna um intervalo de 999 dias | 
| INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)] | Retorna um período em termos de horas, minutos e segundos. hour_precision é o número de dígitos no campo hora; ele varia de 0 a 2. O padrão é 2. fractional_seconds_precision é o número de dígitos na parte fracionária do valor do segundo no campo time; ele varia de 0 a 9. | INTERVAL '09:08:07.6666666' HOUR TO SECOND(7)retorna um intervalo de 9 horas, 08 minutos e 7.6666666 segundos | 
| INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)] | Retorna um período em termos de horas e minutos. hour_precision é o número de dígitos no campo hora; ele varia de 0 a 2. O padrão é 2. minute_precision é o número de dígitos no campo minute; ele varia de 0 a 2. O padrão é 2. | INTERVAL '09:30' HOUR TO MINUTEretorna um intervalo de 9 horas e 30 minutos | 
| INTERVAL 'hour' HOUR[(hour_precision)] | Retorna um período em termos de horas. hour_precision é o número de dígitos no campo hora; ele varia de 0 a 2. O padrão é 2. | INTERVAL '40' HOURretorna um intervalo de 40 horas | 
| INTERVAL 'minute' MINUTE[(minute_precision)] | Retorna um período em termos de minutos. minute_precision é o número de dígitos no campo minute; ele varia de 0 a 2. O padrão é 2. | INTERVAL '15' MINUTEretorna um intervalo de 15 minutos | 
| INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)] | Retorna um período em termos de minutos e segundos. minute_precision é o número de dígitos no campo minute; ele varia de 0 a 2. O padrão é 2. fractional_seconds_precision é o número de dígitos na parte fracionária do valor do segundo no campo time; ele varia de 0 a 9. | INTERVAL '15:30' MINUTE TO SECONDretorna um intervalo de 15 minutos e 30 segundos | 
| INTERVAL 'second' SECOND[(fractional_seconds_precision)] | Retorna um período em termos de segundos. fractional_seconds_precision é o número de dígitos na parte fracional do campo segundo; ele varia de 0 a 9. O padrão é 3. | INTERVAL '15.678' SECONDretorna um intervalo de 15,678 segundos | 
| Função | Descrição | Exemplo | 
|---|---|---|
| MD5(all data types) | Calcula uma soma de verificação MD5do tipo de dados e retorna um valor de string. |  MD5(column_name) | 
| SHA1(all data types) | Calcula um valor de hash SHA-1do tipo de dados e retorna um valor de string. |  SHA1(column_name) | 
| SHA2(all data types, bitLength) | Calcula um valor de hash SHA-2do tipo de dados e retorna um valor de string. bitLengthé um número inteiro. | SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512). | 
| ORA_HASH(expr, [max_bucket], [seed_value]) | Calcula um valor de hash para  
 
 
 A Oracle aplica a função hash à combinação de  | 
 
 
 
 | 
| Função | Descrição | Exemplo | 
|---|---|---|
| SCHEMA_OF_JSON(string) | Faz parsing de uma string JSON e infere o esquema no formato DDL. | 
 
 | 
| FROM_JSON(column, string) | Faz parsing de uma coluna que contém uma string JSON em um dos tipos a seguir, com o esquema especificado. 
 | 
 
 | 
| TO_JSON(column) | Converte uma coluna que contém um tipo Struct ou Array de Structs ou um tipo Map ou Array de Map em uma string JSON. | TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value')))retorna uma string JSON{"s1":[1,2,3],"s2":{"key":"value"}} | 
| 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_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_ARRAY(column[,column]*) | Cria uma nova coluna como tipo Array. As colunas de entrada devem todas ter o mesmo tipo de dados. | 
 
 | 
Os operadores de fluxo de dados que suportam a criação de expressões e tipos de dados hierárquicos podem usar funções de ordem superior.
Estes são os operadores suportados:
- 
Agregado 
- 
Expressão 
- 
Filtro 
- 
Associar 
- 
Lookup 
- 
Divisão 
- 
Deslocar 
| Função | Descrição | Exemplo | 
|---|---|---|
| TRANSFORM(column, lambda_function) | Recebe uma matriz e uma função anônima e configura uma nova matriz aplicando a função a cada elemento e atribuindo o resultado à matriz de saída. | Para um array de entrada de inteiros [1, 2, 3],TRANSFORM(array, x -> x + 1)retorna um novo array de[2, 3, 4]. | 
| TRANSFORM_KEYS(column, lambda_function) | Usa um mapa e uma função com 2 argumentos (chave e valor) e retorna um mapa no qual as chaves têm o tipo do resultado da função lambda, e os valores têm o tipo dos valores de mapa da coluna. | Para um mapa de entrada com chaves inteiras e valores de string {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'},TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1)retorna um novo mapa de{3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}. | 
| TRANSFORM_VALUES(column, lambda_function) | Usa um mapa e uma função com 2 argumentos (chave e valor) e retorna um mapa no qual os valores têm o tipo do resultado das funções lambda, e as chaves têm o tipo das chaves de mapa de coluna. | Para um mapa de entrada com chaves de string e valores de string {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'},TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v)retorna um novo mapa de{'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}. | 
| ARRAY_SORT(array(...), lambda_function) | Somente o operador de Expressão suporta  Recebe uma matriz e classifica de acordo com a função fornecida que recebe 2 argumentos. A função deve retornar -1, 0 ou 1, dependendo de o primeiro elemento ser menor que, igual a ou maior que o segundo elemento. Se a função for omitida, a matriz será classificada em ordem crescente. | A matriz retornada é: [1,5,6] | 
| Função | Descrição | Exemplo | 
|---|---|---|
| CASE WHEN condition1 THEN result1 ELSE result2 END | Retorna o valor cuja condição é atendida. | CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' ENDretornaABCse1> 0; caso contrário, retornaXYZ | 
| AND | O 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" | 
| OR | O 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" | 
| NOT | O operador lógico NOT. | |
| LIKE | Executa correspondência de padrão de string, se string1 corresponder ao padrão em string2. | |
| = | 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 a desigualdade. Retorna verdadeiro se expr1 não for igual a expr2; caso contrário, retorna falso. | x != 10 retorna "false" se o valor de x for 10, caso contrário, retorna "true" | 
| > | 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" | 
| || | Concatena duas strings. | 'XYZ' || 'hello'retorna'XYZhello' | 
| BETWEEN | Avalia um intervalo. | FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007 | 
| IN | Testa se uma expressão corresponde a uma lista de valores. | FILTER_2.ORDERS.ORDER_ID IN (1003, 1007) | 
| Funções | Descrição | Exemplo | 
|---|---|---|
| CAST(value AS type) | Retorna o valor especificado no tipo especificado. | CAST("10" AS INT)retorna10 | 
| CONCAT(string, string) | Retorna os valores combinados de strings ou colunas. | CONCAT('Oracle','SQL')retornaOracleSQL | 
| CONCAT_WS(separator, expression1, expression2, expression3,...) | Retorna os valores combinados de strings ou colunas usando o separador especificado entre as strings ou colunas. Um separador é obrigatório e deve ser uma string. Pelo menos uma expressão deve ser fornecida após o separador. Por exemplo:  | CONCAT_WS('-', 'Hello', 'Oracle')retornaHello-Oracle
 Se um filho da função for um array, o array será nivelado: 
 | 
| INITCAP(string) | Retorna a string com a primeira letra de cada palavra em maiúscula, enquanto todas as outras letras ficam em minúsculas e cada palavra é delimitada por um espaço em branco. | INITCAP('oRACLE sql')retornaOracle Sql | 
| INSTR(string, substring[start_position]) | Retorna o índice (baseado em 1) da primeira ocorrência de substringemstring. | INSTR('OracleSQL', 'SQL')retorna7 | 
| LOWER(string) | Retorna a string com todas as letras alteradas para minúsculas. | LOWER('ORACLE')retornaoracle | 
| 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')retorna6 | 
| LTRIM(string) | Retorna a string com espaços à esquerda removidos. | LTRIM(' Oracle') | 
| NVL(expr1, epxr2) | Retorna o argumento que não é nulo. | NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID()) | 
| 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('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1)retorna22 | 
| REPLACE(string, search, replacement) | Substitui todas as ocorrências de searchporreplacement.Se  Se  | REPLACE('ABCabc', 'abc', 'DEF')retornaABCDEF | 
| RTRIM(string) | Retorna a string com espaços à esquerda removidos da direita. | RTRIM('Oracle ') | 
| SUBSTRING(string, position[, substring_length]) | Retorna a substring que começa na posição. | SUBSTRING('Oracle SQL' FROM 2 FOR 3)returnsrac | 
| Para números, TO_CHAR(expr)e datasTO_CHAR(expr, format[, locale]) | Converte números e datas em strings. Para números, nenhum formato é necessário. Para datas, use o mesmo formato do DATE_FORMATdescrito em Funções de Data e Hora. A configuração regional padrão éen-US. Consulte as tags de idioma suportadas.Nas expressões do pipeline,  
 | Exemplo de número:  Exemplo de data:  | 
| UPPER(string) | Retorna uma string com todas as letras alteradas para maiúsculas. | UPPER('oracle')retornaORACLE | 
| LPAD(str, len[, pad]) | Retorna uma string preenchida à esquerda com caracteres especificados para um determinado tamanho. Se o caractere pad for omitido, o padrão será um espaço. | LPAD('ABC', 5, '*')retorna'**ABC' | 
| RPAD(str, len[, pad]) | Retorna uma string preenchida à direita com caracteres especificados para um determinado tamanho. Se o caractere pad for omitido, o padrão será um espaço. | RPAD('XYZ', 6, '+' ) returns 'XYZ+++' | 
| Função | Descrição | Exemplo | 
|---|---|---|
| NUMERIC_ID() | Gera um identificador exclusivo universal que é um número de 64 bits para cada linha. | NUMERIC_ID()retorna, por exemplo,3458761969522180096e3458762008176885761 | 
| ROWID() | Gera números monotonicamente crescentes de 64 bits. | ROWID()retorna, por exemplo,0,1,2e assim por diante | 
| UUID() | Gera um identificador exclusivo universal que é uma String de 128 bit para cada linha. | UUID()retorna, por exemplo,20d45c2f-0d56-4356-8910-162f4f40fb6d | 
| MONOTONICALLY_INCREASING_ID() | Gera inteiros exclusivos e monotonicamente crescentes de 64 bits que são números não consecutivos. | MONOTONICALLY_INCREASING_ID()retorna, por exemplo,8589934592e25769803776 |