2011-09-13 4 views
0

私は非常にストアドプロシージャの新しいです。私は非常に基本的なストアドプロシージャを作成しようとしています。MySQLのストアドプロシージャは常に空の値を取得

DELIMITER // 

    CREATE PROCEDURE `getname` (IN a_id INT, OUT a_name VARCHAR(50)) 

    BEGIN 
     SELECT name INTO a_name FROM tblname WHERE id = a_id; 
    END // 

DELIMITER ; 

私は非常に単純なデータベースであり、単一のテーブル、その中にid 1の文字列値、名前の文字列値を持つ単一の行を持っています。私はのようなプロシージャを呼び出すたび:

CALL getname(1, @a_name); 
SELECT @a_name; 

は、それは常にNULL値を返します:(

私はこの単純な問題ではなく、まだ運と最後の4時間座っていホープ皆さんからソリューションを取得します。 。

ところで、私は、MySQLのバージョンと32ビットが5.1.33であるウィンドウのXAMPP 1.7.1を使用しています。このセッションで

+0

こんにちは、私は5.1.28であなたのコードをテストし、期待どおりに正常に動作します。あなたはあなたのテーブルにid = 1で名前がヌルではないレコードを持っていますか? – mishau

答えて

0

てみてください - 。

CALL getname(1, @a_name); 
SELECT @a_name; 

SELECT * FROM tblname WHERE id = 1; -- Is there any result? 

結果が空でない場合は、手順から、このSELECT文を実行してみてください -

... 
BEGIN 
    SELECT * FROM tblname WHERE id = 1; 
END// 
... 

をそして再びそれを呼び出します。

関連する問題