MySql procédures stockées: comment sélectionner à partir de la table de procédures?

disons que nous avons une procédure stockée choisissant quelque chose d'une table:

CREATE PROCEDURE database.getExamples() 
SELECT * FROM examples;

Comment puis-je utiliser le résultat de cette procédure dans un select ultérieur? (J'ai essayé

SELECT * FROM (CALL database.getExamples())

mais sans succès.) Dois-je utiliser SELECT... EN outVariable dans la procédure? Ou devrais-je utiliser une fonction retournant la table à la place?

23
demandé sur Cambiata 2009-10-27 10:58:19

3 réponses

reformule la question dans ce thread: une procédure/fonction stockée peut-elle retourner une table? . Évidemment, il n'est pas possible sans l'utilisation de tables temporaires.

5
répondu Cambiata 2017-05-23 12:25:48
CREATE TABLE #TempTable
(OID int IDENTITY (1,1),
VAr1 varchar(128) NOT NULL,
VAr2 varchar(128) NOT NULL)

Populate temporary table

INSERT INTO #TempTable(VAr1 , VAr2 )
SELECT * FROM examples
2
répondu Dani 2009-10-27 08:21:03

dans SQL server vous pouvez alors faire SELECT * FROM database.getExamples()

si vous voulez réutiliser la 'procédure' alors, oui, je la mettrais dans une fonction de valeur de table.

sinon vous pouvez simplement sélectionner dans une table #temporary à l'intérieur de la procédure stockée.

-2
répondu RR. 2015-02-24 18:39:23