2017-11-09 4 views
0

これはselectクエリからフェッチされたvalを出力するmysqlストアドプロシージャです。私が間違っているつもりだところ、それは常にnull変数を選択しても機能しない

DELIMITER $$ 
DROP PROCEDURE IF EXISTS test $$ 
CREATE PROCEDURE test(IN input VARCHAR(5000),OUT output VARCHAR(5000)) 
BEGIN 
    DECLARE detail_id VARCHAR(128); 
    DECLARE val VARCHAR(128); 

    SET output = CONCAT(output, "0", ':', "Starting"); 

    select split_string_new(input,':', 1) into val; 

    SET output = CONCAT(output, "detail_id0---",detail_id,"...."); 

    SET detail_id = ""; 

    SELECT `dtl_id` FROM detail_tbl WHERE `dtl_val` = val INTO detail_id; 
    SET output = CONCAT(output, "detail_id1---",detail_id,"...."); 

END $$ 
DELIMITER ; 

call test('123',@output);SELECT @output; 

を出力わからない私は以下とさらにいくつかのようにstackoverflowの上で見つかったいくつかの解決策を試してみましたが、それでも失敗しました。これについての助けに感謝します! MySQL Stored procedure variables from SELECT statements MySql SELECT INTO Variable: returns null

+0

正しくタグ付けしてください。どのdbmsを使用していますか??????? MySQLまたはOracle? – Eric

+0

@Eric mysql !!!!!!!!!!!!!!!!!! – dishanm

+0

その後、 'plsql'タグを削除してください!!!!!!! – Eric

答えて

1

FROM句の前INTO句を置くようにしてください。

SELECT `dtl_id` INTO detail_id FROM detail_tbl WHERE `dtl_val` = val; 
+0

私はstilが私にnullを与えることを試みた。上記のクエリで試したところ、@detail_idも試してみました。 – dishanm

関連する問題