Per i dettagli sulla sintassi e i parametri dell'istruzione CALL, consultare Istruzione CALL. Per avere un esempio dell'utilizzo di CALL, consultare gli esempi contenuti in Istruzione CREATE PROCEDURE.
Una routine è richiamata come metodo ESQL se la definizione della routine specifica una clausola LANGUAGE di ESQL o se la routine è una funzione integrata.
E' necessaria una corrispondenza esatta uno a uno, tra la definizione e l'istruzione CALL, dei tipi di dati e delle direzioni di ogni parametro.
Una routine ESQL può restituire qualsiasi tipo di dati ESQL, esclusi List e Row.
Una routine è richiamata come metodo Java se la definizione della routine specifica una clausola LANGUAGE di JAVA.
E' necessaria una corrispondenza esatta uno a uno, tra la definizione e l'istruzione CALL, dei tipi di dati e delle direzioni di ogni parametro.
Se il metodo Java ha un tipo di restituzione vuoto, la clausola INTO non può essere utilizzata perché non ha un valore da restituire.
Una routine Java può restituire qualsiasi tipo di dati nella Tabella di associazione del tipo di dati ESQL in Java. Si noti che questo esclude i tipi di dati List e Row.
Una routine è richiamata come procedura memorizzata nel database se la definizione della routine ha una clausola LANGUAGE di DATABASE.
Quando viene effettuata una chiamata ad una procedura memorizzata nel database, il broker ricerca una definizione (creata da un'istruzione CREATE PROCEDURE) che corrisponda al nome locale della procedura. Il broker utilizza quindi la seguente sequenza per risolvere il nome con cui la procedura viene riconosciuta nel database e lo schema di database al quale appartiene:
Se la routine richiamata contiene qualche DYNAMIC RESULT SETS specificata nella propria definizione, il numero di espressioni nel ParameterList dell'istruzione CALL deve corrispondere al numero di parametri effettivi nella routine, più il numero di DYNAMIC RESULT SETS. Ad esempio, se la routine ha tre parametri e due DYNAMIC RESULT SETS, l'istruzione CALL deve trasmettere cinque parametri alla routine richiamata. I parametri trasmessi per i due DYNAMIC RESULT SETS devono essere parametri di elenco; cioè, devono essere riferimenti di campo qualificati con parentesi di array [ ]; ad esempio, Environment.ResultSet1[].
Una procedura memorizzata nel database può restituire tutti i tipi di dati ESQL, esclusi Interval, List, e Row.