Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SELECT-ing dados de procedimentos armazenados


A seleção de funções é possível em outros motores. Por exemplo, o Oracle permite escrever uma função que retorna uma tabela do tipo definido pelo usuário. Você pode definir conjuntos de resultados na função, preenchê-los usando consultas ou até mesmo usando uma combinação de seleções e código. Eventualmente, o conjunto de resultados pode ser retornado da função e você pode continuar consultando isso usando:
select * from table(FunctionToBeCalls(parameters));

A única desvantagem é que esse conjunto de resultados não é indexado, portanto, pode ser lento se a função for usada em uma consulta complexa.

No MySQL nada disso é possível. Não há como usar um conjunto de resultados de um procedimento diretamente em uma consulta de seleção. Você pode retornar valores únicos de uma função e pode usar OUT ou INOUT parâmetros para seu procedimento para retornar valores. Mas conjuntos de resultados inteiros não são possíveis. Preencher uma tabela temporária dentro de seu procedimento é o mais próximo que você terá.