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?
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.
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
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.