Uma função é uma construção ESQL que calcula um valor a partir de vários valores de entrada especificados.
Uma função geralmente possui parâmetros de entrada e pode, mas geralmente não possui, parâmetros de saída. Ela retorna um valor calculado pelo algoritmo descrito por sua instrução. Essa instrução é geralmente uma instrução composta, como BEGIN... END, porque permite que um número ilimitado de instruções aninhadas sejam utilizadas para implementar o algoritmo.
O ESQL fornece várias funções predefinidas ou "internas", que você pode utilizar livremente nas expressões. Também é possível utilizar a instrução CREATE FUNCTION para definir suas próprias funções.
Ao definir uma função, você deve atribuir a ela um nome exclusivo. O nome é tratado sem fazer distinção entre maiúsculas e minúsculas (ou seja, pode-se utilizar o nome com qualquer combinação de maiúsculas e minúsculas na instrução). Isso é o oposto do que ocorre com os nomes declarados para esquemas, constantes, variáveis e rótulos, que fazem distinção entre maiúsculas e minúsculas e que devem ser especificados exatamente da maneira como foram declarados.
Considere o seguinte fragmento de programa ESQL:
SET Diameter = SQRT(Area / 3.142) * 2;
Neste exemplo, a função SQRT (raiz quadrada) recebe o valor entre colchetes (o próprio resultado de uma expressão, uma operação de divisão) e seu resultado está sendo utilizado em uma expressão adicional, uma operação de multiplicação. Seu valor de retorno é designado ao Diâmetro de variável. Consulte Chamando Funções ESQL para obter informações sobre todas as funções ESQL internas.
Observe que não é possível definir uma função dentro de uma instrução EVAL ou de uma função EVAL.