Per richiamare una procedura memorizzata in un database,
utilizzare l'istruzione ESQL CALL. La procedura memorizzata deve essere definita da
un'
Istruzione CREATE PROCEDURE che
abbia:
- Una clausola Language di DATABASE
- Una clausola EXTERNAL NAME che identifica il nome della procedura nel database e,
facoltativamente, lo schema di database a cui appartiene.
Quando si richiama una procedura memorizzata con l'istruzione
CALL, il broker assicura che la definizione ESQL e la definizione del database
corrispondano:
- Il nome esterno della procedura deve corrispondere ad una procedura nel database.
- Il numero di parametri deve essere lo stesso.
- Il tipo di ogni parametro deve essere lo stesso.
- La direzione di ogni parametro (IN, OUT, INOUT) deve essere la stessa.
All'utilizzo delle procedure memorizzate sono applicate le seguenti limitazioni:
- Le procedure sovraccaricate non sono supportate. (Una procedura sovraccaricata
è una procedura che ha lo stesso nome di un'altra procedura nello stesso schema di
database con un numero di parametri diverso o con parametri di tipo diverso.) Se il broker rileva che una procedura è stata
sovraccaricata, esso genera un'eccezione.
- In una dichiarazione di procedura memorizzata di Oracle, non è permesso vincolare i parametri CHAR e VARCHAR2 con un valore di lunghezza, di NUMBER con uno di precisione o scala o entrambi. Per dichiarare che i parametri CHAR, VARCHAR e NUMBER forniscono limitazioni su un parametro formale, utilizzare %TYPE.