Det är möjligt att välja bland funktioner i andra motorer. Till exempel låter Oracle dig skriva en funktion som returnerar en tabell av användardefinierad typ. Du kan definiera resultatuppsättningar i funktionen, fylla dem genom att använda frågor eller till och med använda en kombination av markeringar och kod. Så småningom kan resultatuppsättningen returneras från funktionen, och du kan fortsätta att fråga om det genom att använda:
select * from table(FunctionToBeCalls(parameters));
Den enda nackdelen är att denna resultatuppsättning inte indexeras, så det kan vara långsamt om funktionen används i en komplex fråga.
I MySQL är inget sådant möjligt. Det finns inget sätt att använda en resultatuppsättning från en procedur direkt i en urvalsfråga. Du kan returnera enstaka värden från en funktion och du kan använda OUT
eller INOUT
parametrar till din procedur för att returnera värden från. Men hela resultatuppsättningar är inte möjliga. Att fylla en tillfällig tabell inom din procedur är det närmaste du kommer.