Una funzione è una struttura ESQL che calcola un valore da un numero di valori di input forniti.
Generalmente, una funzione dispone di parametri di input e può avere, in alcuni casi, dei parametri di output. Restituisce un valore calcolato dall'algoritmo descritto dalla relativa istruzione. Tale istruzione è generalmente un'istruzione composta, come, ad esempio, BEGIN... END, perché in questo modo è possibile utilizzare un numero illimitato di istruzioni nidificate per implementare l'algoritmo.
ESQL fornisce un numero di funzioni predefinite, o "integrate", che è possibile utilizzare all'interno delle espressioni. E' anche possibile utilizzare l'istruzione CREATE FUNCTION per definire le proprie funzioni.
Quando si definisce una funzione, è necessario assegnare un nome univoco. Il nome è gestito indipendentemente dalle lettere maiuscole/minuscole (l'utilizzo del nome con qualsiasi combinazione di lettere maiuscole e minuscole corrisponde alla dichiarazione). Ciò è in contrasto con i nomi dichiarati per gli schemi, le costanti, le variabili e le etichette, che sono sensibili al maiuscolo/minuscolo e devono essere specificati esattamente nel modo in cui sono stati dichiarati.
Considerare il seguente frammento di programma ESQL:
SET Diameter = SQRT(Area / 3.142) * 2;
In questo esempio, alla funzione SQRT (radice quadrata) viene assegnato il valore tra parentesi (a sua volta, risultato di un'espressione, un'operazione di divisione) ed il risultato viene utilizzato in un'ulteriore espressione, un'operazione di moltiplicazione. Il valore restituito viene assegnato alla variabile Diameter. Consultare Richiamo delle funzioni ESQL per informazioni relative a tutte le funzioni ESQL integrate.
Notare che non è possibile definire una funzione all'interno di un'istruzione EVAL o di una funzione EVAL.