Referencia de funciones (pipeline)

Las siguientes funciones se utilizan con los operadores de expresión y decisión de un pipeline.

Funciones aritméticas
FunciónDescripciónEjemplo
ABS(numeric)Devuelve la potencia absoluta del valor numeric.ABS(-1)
CEIL(numeric)Devuelve el entero más pequeño que no sea mayor que el valor numericCEIL(-1,2)
EXP(numeric) Devuelve e elevado a la potencia de numeric. La constante e es igual a 2.71828182845904, la base del logaritmo natural. EXP(2)
FLOOR(numeric)Devuelve el entero más grande que no sea mayor que el valor numericFLOOR(-1,2)
MOD(numeric1, numeric2)Devuelve el resto después de dividir numeric1 por numeric2.MOD(8,2)
POW(numeric1, numeric2)Eleva numeric1 a la potencia numeric2.POW(2,3)
ROUND(numeric1, numeric2)Devuelve numeric1 redondeado a numeric2 posiciones decimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Devuelve numeric1 truncado a numeric2 posiciones decimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convierte una expr a un número, según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato soportados:

  • 0: un dígito
  • #: un dígito, cero se muestra como ausente
  • .: marcador de posición para el separador decimal
  • ,: marcador de posición para el separador de agrupación
  • E: separa la mantisa y el exponente para formatos exponenciales
  • -: prefijo negativo por defecto
  • ¤: signo de moneda; se sustituye por el símbolo de moneda; si se duplica, se sustituye por el símbolo de moneda internacional; si está presente en un patrón, se utiliza el separador decimal monetario en lugar del separador decimal

TO_NUMBER('5467.12') returns devuelve 5467.12

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

FORMAT_NUMBER(value, format) Devuelve una representación formateada del valor especificado.

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

Funciones condicionales
FunciónDescripciónEjemplo
NULLIF(value, value)Devuelve null si los dos valores son iguales entre sí; de lo contrario, devuelve el primer valor.NULLIF('ABC','XYZ') devuelve ABC
ISNULL(value) Comprueba el valor nulo. ISNULL('ABC') devuelve false
ISNOTNULL(value) Comprueba si el valor no es nulo. ISNOTNULL('ABC') devuelve true
Funciones de fecha y hora
FunciónDescripciónEjemplo
CURRENT_DATEDevuelve la fecha actual.CURRENT_DATE devuelve la fecha de hoy
CURRENT_TIMESTAMPDevuelve la fecha y la hora actuales con la zona horaria en la zona horaria de la sesión.CURRENT_TIMESTAMP devuelve la fecha y la hora actuales de hoy
DATE_ADD(date, number)Devuelve la fecha que es el valor number especificado de los días posteriores al valor date especificado.DATE_ADD('2017-07-30', 1) devuelve 2017-07-31
DATE_SUB(date, number) Devuelve la fecha que es el valor number especificado de los días anteriores al valor date especificado. DATE_SUB('2017-07-30', 1) devuelve 2017-07-29
DATE_FORMAT(expr, format[, locale])Aplica un formato expr de fecha según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

En las expresiones de pipeline, format debe utilizar los códigos de formato strftime.

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

El primer argumento es un objeto Date que representa el 13 de octubre de 2020.

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

WEEKOFYEAR(date) Devuelve la semana del año de la fecha.

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

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

TO_DATE(string, format_string[, localeStr])Analiza la expresión de cadena con la expresión format_string en una fecha. La configuración regional es opcional. El valor por defecto es en-US. Etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime.

Ejemplos de código de formato:

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

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

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

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

TO_TIMESTAMP(expr, format_string[, localeStr])Convierte una expr de VARCHAR a un valor de TIMESTAMP, según el valor de format_string y de localeStr opcional proporcionados.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime.

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

Devuelve el número de meses entre start_date_expr y end_date_expr. start_date_expr y end_date_expr pueden ser una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Se devuelve un número entero si ambas fechas son el mismo día del mes o ambas son el último día de sus meses respectivos. De lo contrario, la diferencia se calcula en función de 31 días al mes.

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

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

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

Funciones jerárquicas
FunciónDescripciónEjemplo
TO_MAP(string,column[,string,column]*)Crea una nueva columna de tipo Asignación. Las columnas de entrada se deben agrupar como pares clave-valor. Las columnas de clave de entrada no pueden ser nulas y todas deben tener el mismo tipo de datos. Todas las columnas de valor de entrada deben tener el mismo tipo de datos.

TO_MAP('Ename',Expression_1.attribute1) devuelve una columna de tipo Map: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) devuelve una columna de tipo Map: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crea una nueva columna de tipo Struct. Las columnas de entrada se deben agrupar como pares clave-valor.

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

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

TO_ARRAY(column[,column]*)Crea una nueva columna como tipo Array. Todas las columnas de entrada deben tener el mismo tipo de datos.

TO_Array(Expression_1.attribute1) devuelve [100]

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

Funciones de operador (de comparación)
FunciónDescripciónEjemplo
ANDOperador lógico AND. Devuelve true si ambos operandos son verdaderos; de lo contrario, devuelve false.(x = 10 AND y = 20) devuelve "true" si x es igual a 10 e y es igual a 20. Si uno de las dos no es verdadero, devuelve "false"
OROperador lógico OR. Devuelve true si cualquiera de los operandos es true o ambos son true; de lo contrario, devuelve false.(x = 10 OR y = 20) devuelve "false" si x no es igual a 10 y, también, si y no es igual a 20. Si cualquiera de ellos es verdadero, devuelve "true"
NOTOperador lógico NOT.
IN Prueba si una expresión coincide con una lista de valores. FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
=Comprueba la igualdad. Devuelve true si expr1 es igual a expr2; de lo contrario, devuelve false.x = 10 devuelve "true" cuando el valor de x es 10; de lo contrario, devuelve "false"
>Comprueba si una expresión es mayor que. Devuelve true si expr1 es mayor que expr2.x > 10 devuelve "true" si el valor de x es mayor que 10; de lo contrario, devuelve "false"
>=Comprueba si una expresión es mayor o igual que. Devuelve true si expr1 es mayor o igual que expr2.x > =10 devuelve "true" si el valor de x es mayor o igual que 10; de lo contrario, devuelve "false"
<Comprueba si una expresión es menor que. Devuelve true si expr1 es menor que expr2.x < 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
<=Comprueba si una expresión es menor o igual que. Devuelve true si expr1 es menor o igual que expr2.x <= 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
Funciones de Cadena
FuncionesDescripciónEjemplo
CAST(value AS type)Devuelve el valor especificado en el tipo especificado.CAST("10" AS INT) devuelve 10
CONCAT(string, string)Devuelve los valores combinados de cadenas o columnasCONCAT('Oracle','SQL') devuelve OracleSQL
LOWER(string)Devuelve la cadena con todas las letras cambiadas a minúsculas.LOWER('ORACLE') devuelve oracle
LENGTH(string)Devuelve la longitud de caracteres de la cadena o el número de bytes de datos binarios. La longitud de la cadena incluye los espacios finales.LENGTH('Oracle') devuelve 6
LTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la izquierda.LTRIM(' Oracle')
REGEXP_EXTRACT(string, regexp[, RegexGroupIdx])Extrae un grupo que coincide con la expresión regular.REGEXP_EXTRACT('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) devuelve 22
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx]) Busca y extrae la cadena que coincide con un patrón de expresión regular de la cadena de entrada. Si se ha proporcionado el índice de grupo de captura opcional, la función extrae el grupo específico.

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

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) devuelve 22
REGEXP_REPLACE(string, regexp, rep]) Sustituye todas las subcadenas de la cadena que coinciden con la expresión regular por rep.
REPLACE(string, search, replacement)Sustituye todas las ocurrencias de search por replacement.

Si no se encuentra search en la cadena, la cadena se devuelve sin cambios.

Si no se especifica replacement o es una cadena vacía, nada sustituye a search, que se elimina de string.

REPLACE('input string value', 'input', 'output') devuelve "output string value". Por ejemplo:

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

RTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la derecha.RTRIM('Oracle ')
SUBSTRING(string, start_position[, substring_length])Devuelve la subcadena de string a partir de la start_position indicada con la longitud substring_length.

La numeración de posición de desfase comienza con 0.

SUBSTRING('Hello Oracle', 6, 6) devuelve Oracle
TO_CHAR(expr[, format_string])Convierte una fecha en una cadena basándose en el formato. Convierte un número en una cadena; no es necesario ningún formato.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime.

TO_CHAR(123) devuelve 123

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

El primer argumento es un objeto Date que representa el 30 de octubre de 2020.

TRIM(string) Devuelve una cadena con los caracteres de espacio iniciales eliminados. TRIM(' ORACLE ') devuelve ORACLE
UPPER(string)Devuelve una cadena con todas las letras cambiadas a mayúsculas.UPPER('oracle') devuelve ORACLE
json_path(json_string, json_filter_path) Extrae un valor de una estructura JSON. CAST(json_path(SYS.RESPONSE_PAYLOAD, '$.key') AS String) devuelve el valor de cadena del campo "key" en RESPONSE_PAYLOAD