Visão geral das funções ESQL

Uma função é uma construção ESQL que calcula um valor a partir de diversos 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. Esta afirmação geralmente é uma instrução composta, como BEGIN ... END, pois isso permite que um número ilimitado de instruções aninhadas seja usado para implementar o algoritmo.

O ESQL fornece diversas 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, deve-se atribuir a ela um nome exclusivo. O nome é manipulado sem distinção de maiúsculas e minúsculas (isto é, o uso do nome com qualquer combinação de letras maiúsculas e minúsculas corresponde à declaraçã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 integradas.

Além disso, uma expressão ESQL pode referir-se a uma função de um outro esquema do broker (ou seja, uma função definida por uma instrução CREATE FUNCTION em um arquivo ESQL no mesmo projeto dependente ou em um diferente). Para resolver o nome da função chamada, você deve executar uma das seguintes etapas:
  • Especifique o nome completo (<SchemaName>.<FunctionName> ) da função chamada.
  • Inclua uma instrução PATH para tornar todas as funções do esquema nomeado visíveis. Observe que essa técnica funciona somente se os esquemas não contiverem funções com nomes idênticos. A instrução PATH deve ser codificada no mesmo arquivo ESQL, mas não em qualquer MODULE.

Observe que não é possível definir uma função dentro de uma instrução EVAL ou de uma função EVAL.