sql >> Base de Datos >  >> RDS >> Mysql

SELECCIONAR datos de procedimientos almacenados

La selección de funciones es posible en otros motores. Por ejemplo, Oracle le permite escribir una función que devuelve una tabla de tipo definido por el usuario. Puede definir conjuntos de resultados en la función, completarlos mediante consultas o incluso mediante una combinación de selecciones y código. Eventualmente, el conjunto de resultados puede devolverse desde la función y puede continuar consultando eso usando:

select * from table(FunctionToBeCalls(parameters));

La única desventaja es que este conjunto de resultados no está indexado, por lo que podría ser lento si la función se usa dentro de una consulta compleja.

En MySQL nada como esto es posible. No hay forma de usar un conjunto de resultados de un procedimiento directamente en una consulta de selección. Puede devolver valores individuales de una función y puede usar OUT o INOUT parámetros a su procedimiento para devolver valores. Pero los conjuntos de resultados completos no son posibles. Llenar una tabla temporal dentro de su procedimiento es lo más cercano que obtendrá.