Funzioni (Pipeline) Riferimento

Le funzioni riportate di seguito vengono utilizzate con gli operatori di espressione e decisione in una pipeline.

Funzioni aritmetriche
Funzionedescrizione;Esempio
ABS(numeric)Restituisce la potenza assoluta del valore numeric.ABS(-1)
CEIL(numeric)Restituisce il numero intero minimo non maggiore del valore numericCEIL(-1,2)
EXP(numeric) Restituisce e elevato alla potenza di numeric. La costante e equivale a 2.71828182845904, la base del logaritmo naturale. EXP(2)
FLOOR(numeric)Restituisce il numero intero più alto non maggiore del valore numeric.FLOOR(-1,2)
MOD(numeric1, numeric2)Restituisce il resto dopo che numeric1 è diviso per numeric2.MOD(8,2)
POW(numeric1, numeric2)Alza numeric1 alla potenza di numeric2.POW(2,3)
ROUND(numeric1, numeric2)Restituisce numeric1 arrotondato alle posizioni decimali numeric2.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Restituisce numeric1 troncato alle posizioni decimali numeric2.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Converte un valore expr in un numero, in base al valore format e al valore locale facoltativo fornito. La versione locale predefinita è en-US. Tag lingua supportati.

Pattern di formato supportati:

  • 0: una cifra
  • #: una cifra, zero viene visualizzata come assente
  • .: segnaposto per il separatore decimale
  • ,: segnaposto per il separatore di raggruppamento
  • E: separa mantissa ed esponente per i formati esponenziali
  • -: prefisso negativo predefinito
  • ¤: segno di valuta; sostituito dal simbolo di valuta; se raddoppiato, sostituito dal simbolo di valuta internazionale; se presente in un modello, viene utilizzato il separatore decimale monetario al posto del separatore decimale

TO_NUMBER('5467.12') returns restituisce 5467.12

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

FORMAT_NUMBER(value, format) Restituisce una rappresentazione formattata del valore specificato.

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

Funzioni condizionali
Funzionedescrizione;Esempio
NULLIF(value, value)Restituisce un valore nullo se i due valori sono uguali, altrimenti restituisce il primo valore.NULLIF('ABC','XYZ') restituisce ABC
ISNULL(value) Verifica la presenza di un valore nullo. ISNULL('ABC') restituisce false
ISNOTNULL(value) Verifica la presenza di un valore non nullo. ISNOTNULL('ABC') restituisce true
Funzioni di data e ora
Funzionedescrizione;Esempio
CURRENT_DATERestituisce la data corrente.CURRENT_DATE restituisce la data corrente
CURRENT_TIMESTAMPRestituisce la data e l'ora correnti con il fuso orario nel fuso orario della sessione.CURRENT_TIMESTAMP restituisce la data e l'ora correnti di oggi
DATE_ADD(date, number)Restituisce la data number specificata dei giorni successivi al valore date specificato.DATE_ADD('2017-07-30', 1) restituisce 2017-07-31
DATE_SUB(date, number) Restituisce la data che corrisponde al valore number specificato dei giorni precedenti al valore date specificato. DATE_SUB('2017-07-30', 1) restituisce 2017-07-29
DATE_FORMAT(expr, format[, locale])Formatta un valore expr di data, in base al valore format e all'opzione locale fornita. La versione locale predefinita è en-US. Tag lingua supportati.

Nelle espressioni della pipeline, format deve utilizzare i codici di formato strftime.

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

Il primo argomento è un oggetto Date che rappresenta il 13 ottobre 2020.

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

WEEKOFYEAR(date) Restituisce la settimana della data nell'anno.

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

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

TO_DATE(string, format_string[, localeStr])Analizza l'espressione di stringa con l'espressione format_string in una data. Le impostazioni nazionali sono facoltative. L'impostazione predefinita è en-US. Tag lingua supportati.

Nelle espressioni della pipeline, format_string deve utilizzare i codici di formato strftime.

Esempi di codice formato:

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

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

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

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

TO_TIMESTAMP(expr, format_string[, localeStr])Converte un valore expr di VARCHAR in un valore di TIMESTAMP, in base al valore format_string e al valore localeStr facoltativo fornito.

Nelle espressioni della pipeline, format_string deve utilizzare i codici di formato strftime.

TO_TIMESTAMP('2020-10-10 11:10:10', '%A %d-%m-%Y, %H:%M:%S') restituisce un oggetto TIMESTAMP che rappresenta Saturday 10-10-2020, 11:10:10
MONTHS_BETWEEN(start_date_expr, end_date_expr)

Restituisce il numero di mesi compresi tra start_date_expr e end_date_expr. start_date_expr e end_date_expr possono essere una data, un indicatore orario o una stringa con un formato quale yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Viene restituito un numero intero se entrambe le date sono lo stesso giorno del mese o se entrambe sono l'ultimo giorno dei rispettivi mesi. In caso contrario, la differenza viene calcolata in base a 31 giorni al mese.

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

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

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

Funzioni gerarchiche
Funzionedescrizione;Esempio
TO_MAP(string,column[,string,column]*)Crea una nuova colonna di tipo Mappa. Le colonne di input devono essere raggruppate come coppie chiave-valore. Le colonne chiave di input non possono essere nulle e devono avere tutti lo stesso tipo di dati. Le colonne dei valori di input devono avere tutti lo stesso tipo di dati.

TO_MAP('Ename',Expression_1.attribute1) restituisce una colonna di tipo Mappa: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) restituisce una colonna di tipo Mappa: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crea una nuova colonna di tipo Struttura. Le colonne di input devono essere raggruppate come coppie chiave-valore.

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

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

TO_ARRAY(column[,column]*)Crea una nuova colonna come tipo di array. Le colonne di input devono avere tutte lo stesso tipo di dati.

TO_Array(Expression_1.attribute1) restituisce [100]

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

Funzioni operatore (confronto)
Funzionedescrizione;Esempio
ANDL'operatore AND logico. Restituisce true se entrambi gli operandi sono true, altrimenti restituisce false.(x = 10 AND y = 20) restituisce "true" se x è uguale a 10 e y è uguale a 20. Se uno dei due non è vero, restituisce "falso"
OROperatore OR logico. Restituisce true se uno degli operandi è true o entrambi sono true, altrimenti restituisce false.(x = 10 OR y = 20) restituisce "false" se x non è uguale a 10 e anche y non è uguale a 20. Se uno dei due è vero, allora restituisce "vero"
NOTL'operatore NOT logico.
IN Verifica se un'espressione corrisponde a una lista di valori. FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
=Test per l'uguaglianza. Restituisce true se expr1 è uguale a expr2, altrimenti restituisce false.x = 10 restituisce "true" quando il valore di x è 10, altrimenti restituisce "false"
>Test per un'espressione maggiore di. Restituisce true se expr1 è maggiore di expr2.x > 10 restituisce "true" se il valore di x è maggiore di 10, altrimenti restituisce "false"
>=Test per un'espressione maggiore o uguale a. Restituisce true se expr1 è maggiore o uguale a expr2.x > =10 restituisce "true" se il valore di x è maggiore o uguale a 10, altrimenti restituisce "false"
<Test per un'espressione minore di. Restituisce true se expr1 è minore di expr2.x < 10 restituisce "true" se il valore di x è minore di 10, altrimenti restituisce "false"
<=Test per un'espressione minore o uguale a. Restituisce true se expr1 è minore o uguale a expr2.x <= 10 restituisce "true" se il valore di x è minore di 10, altrimenti restituisce "false"
Funzioni di stringa
Funzionidescrizione;Esempio
CAST(value AS type)Restituisce il valore specificato nel tipo specificato.CAST("10" AS INT) restituisce 10
CONCAT(string, string)Restituisce i valori combinati di stringhe o colonneCONCAT('Oracle','SQL') restituisce OracleSQL
LOWER(string)Restituisce la stringa con tutte le lettere modificate in minuscolo.LOWER('ORACLE') restituisce oracle
LENGTH(string)Restituisce la lunghezza del carattere della stringa o il numero di byte di dati binari. La lunghezza della stringa include gli spazi finali.LENGTH('Oracle') restituisce 6
LTRIM(string)Restituisce la stringa con gli spazi iniziali rimossi da sinistra.LTRIM(' Oracle')
REGEXP_EXTRACT(string, regexp[, RegexGroupIdx])Estrae un gruppo che corrisponde all'espressione regolare.REGEXP_EXTRACT('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) restituisce 22
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx]) Cerca ed estrae la stringa che corrisponde a un pattern di espressione regolare dalla stringa di input. Se viene fornito l'indice di gruppo di acquisizione facoltativo, la funzione estrae il gruppo specifico.

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

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) restituisce 22
REGEXP_REPLACE(string, regexp, rep]) Sostituisce tutte le sottostringhe della stringa che corrispondono all'espressione regolare con rep
REPLACE(string, search, replacement)Sostituisce tutte le occorrenze di search con replacement.

Se search non viene trovato nella stringa, la stringa viene restituita invariata.

Se replacement non è specificato o è una stringa vuota, nulla sostituisce search che viene rimosso da string.

REPLACE('input string value', 'input', 'output') restituisce "output string value". Ad esempio:

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

RTRIM(string)Restituisce la stringa con gli spazi iniziali rimossi da destra.RTRIM('Oracle ')
SUBSTRING(string, start_position[, substring_length])Restituisce la sottostringa da string a partire dal valore start_position specificato con la lunghezza substring_length.

La numerazione della posizione di offset inizia con 0.

SUBSTRING('Hello Oracle', 6, 6) resi Oracle
TO_CHAR(expr[, format_string])Converte una data in una stringa, in base al formato. Converte un numero in una stringa, non è richiesto alcun formato.

Nelle espressioni della pipeline, format_string deve utilizzare i codici di formato strftime.

TO_CHAR(123) restituisce 123

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

Il primo argomento è un oggetto Date che rappresenta il 30 ottobre 2020.

TRIM(string) Restituisce la stringa con gli spazi iniziali rimossi. TRIM(' ORACLE ') restituisce ORACLE
UPPER(string)Restituisce una stringa con tutte le lettere modificate in maiuscolo.UPPER('oracle') restituisce ORACLE
json_path(json_string, json_filter_path) Estrae un valore da una struttura JSON. CAST(json_path(SYS.RESPONSE_PAYLOAD, '$.key') AS String) restituisce il valore stringa del campo "key" in RESPONSE_PAYLOAD