Хранимые процедуры MySql: как выбрать из таблицы процедур?

Скажем, у нас есть хранимая процедура, выбирая что-то из таблицы:

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

Как я могу использовать результат из этой процедуры в более позднем выборе? (Я пробовал

SELECT * FROM (CALL database.getExamples())

но без успеха.) Должен ли я использовать SELECT... INTO outVariable в процедуре? Или я должен использовать функцию, возвращающую таблицу вместо?

Ответ 2

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

Ответ 3

В сервере SQL вы можете сделать SELECT * FROM database.getExamples()

Если вы хотите повторно использовать "процедуру", тогда да, я бы поместил ее в функцию с табличной оценкой.

В противном случае вы можете просто выбрать SELECT INTO в #temporary таблице внутри хранимой процедуры.