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

VALG af data fra lagrede procedurer

Det er muligt at vælge mellem funktioner i andre motorer. For eksempel giver Oracle dig mulighed for at skrive en funktion, der returnerer en tabel af brugerdefineret type. Du kan definere resultatsæt i funktionen, udfylde dem ved at bruge forespørgsler eller endda bruge en kombination af markeringer og kode. Til sidst kan resultatsættet returneres fra funktionen, og du kan fortsætte med at forespørge om det ved at bruge:

select * from table(FunctionToBeCalls(parameters));

Den eneste ulempe er, at dette resultatsæt ikke er indekseret, så det kan være langsomt, hvis funktionen bruges i en kompleks forespørgsel.

I MySQL er intet lignende muligt. Der er ingen måde at bruge et resultatsæt fra en procedure direkte i en udvalgt forespørgsel. Du kan returnere enkelte værdier fra en funktion, og du kan bruge OUT eller INOUT parametre til din procedure for at returnere værdier fra. Men hele resultatsæt er ikke muligt. At udfylde en midlertidig tabel i din procedure er det tætteste, du kommer.




  1. Sådan lytter du til nye db-plader via java

  2. PHP/MYSQL tillader kun én stemme pr. medlem?

  3. Sådan fungerer SQLite Char()

  4. Hvorfor forårsager tilføjelse af '*' til en MySQL-forespørgsel en syntaksfejl?