2012-11-06 10 views
12

私はMySQLを使用しています。私はMySQLの関数を使用してテーブルを返すしたい。 SQLではうまく動作しますが、MySQLでは動作しません。私は部分コードを添付しますmysqlを使用してテーブルを返す方法

DELIMITER $$ 

    CREATE FUNCTION myFunction() RETURNS @tmptable TABLE (item varchar(20)) 
    BEGIN 

     insert into @tmptable(item) values('raja')  


     return 
    END; $$ 
+2

MySQLでは、関数はテーブルを返すことができません。そのためにストアドプロシージャを使用する必要があります。 –

+4

「* SQLではうまくいきましたか?」とはどういう意味ですか?あなた** SQLを使用しています.... .... –

答えて

9

関数を使用すると、テーブルを返すことはできません。

ただし、ストアドプロシージャを使用してテーブルを返すことができます。

DELIMITER $$ 

CREATE DEFINER=`root`@`%` PROCEDURE `sp_Name`(OUT po_ErrMessage VARCHAR(200)) 
BEGIN 
DECLARE EXIT HANDLER FOR SQLEXCEPTION 
BEGIN 
SET po_ErrMessage = 'Error in procedure sp_Name'; 
END; 

SELECT * FROM table_name; 
END 
+1

ああ、その手順で正常に動作します。 MySQL関数を使用して複数の行を返す方法はありますか?可能性がある場合は例 – Bharathi

+0

を確認することができますこれを確認することができます: - http://stackoverflow.com/questions/10850731/mysql-return-more-than-one-rowそれは間違いなく助けになる! –

関連する問題