MySql存储过程:如何从过程表中选择?

时间:2009-10-27 07:58:19

标签: mysql stored-procedures

假设我们有一个存储过程从表中选择一些东西:

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

如何在以后的选择中使用此过程的结果? (我试过了

SELECT * FROM (CALL database.getExamples())

但没有成功。) 我应该在程序中使用SELECT ... INTO outVariable吗?或者我应该使用返回表格的函数吗?

3 个答案:

答案 0 :(得分:6)

在这个帖子中改编了问题:Can a stored procedure/function return a table?。 显然,没有临时表的使用是不可能的。

答案 1 :(得分:3)

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 :(得分:-2)

SQL服务器中,您可以执行SELECT * FROM database.getExamples()

如果你想重新使用'程序'那么,是的,我会把它放到一个表值函数中。

否则你只能在存储过程中选择一个#temporary表。