Mysql
 sql >> Database >  >> RDS >> Mysql

SELECT-ing dati dalle procedure memorizzate

La selezione delle funzioni è possibile in altri motori. Ad esempio, Oracle consente di scrivere una funzione che restituisce una tabella di tipo definito dall'utente. È possibile definire set di risultati nella funzione, compilarli utilizzando query o anche utilizzando una combinazione di selezioni e codice. Alla fine, il set di risultati può essere restituito dalla funzione e puoi continuare a interrogarlo usando:

select * from table(FunctionToBeCalls(parameters));

L'unico svantaggio è che questo set di risultati non è indicizzato, quindi potrebbe essere lento se la funzione viene utilizzata all'interno di una query complessa.

In MySQL niente del genere è possibile. Non è possibile utilizzare un set di risultati da una procedura direttamente in una query di selezione. Puoi restituire valori singoli da una funzione e puoi usare OUT o INOUT parametri alla procedura da cui restituire i valori. Ma non è possibile eseguire interi set di risultati. Riempire una tabella temporanea all'interno della tua procedura è il più vicino che otterrai.