2016-11-19 13 views
2

私はmysqlデータベースで次のテーブルを作成しました。mysqlのストアドプロシージャがNULLを返す

DELIMITER // 
create procedure selectEmp2(IN num1 INT,OUT name varchar(20)) 
BEGIN 
select Name INTO name from myDB.stud_info where Student_ID=num1; 
END// 

私は、ストアドプロシージャを呼び出しています、私はnull値を取得しています:

create table stud_info(Student_ID int,Name varchar(10),Class varchar(10),Marks int) 

は、私はまた、以下のような id指定された名前を取得するために、ストアドプロシージャを作成しました。私が間違っているところを教えてください。

答えて

1

私はあなたのストアドプロシージャがうまくいくはずだと思いますが、ユニークである可能性が高いパラメータに名前を付けることをお勧めします。私はまた、select intoが異なることを意味する可能性があるので、明示的な変数の割り当てを好みます。これは機能しますか?

DELIMITER // 
create procedure selectEmp2(IN in_num1 INT, OUT out_name varchar(20)) 
BEGIN 
    select si.Name into out_name 
    from myDB.stud_info si 
    where si.Student_ID = in_num1; 
END;// 
+0

- あなたはあなたのSQL構文でエラーが発生しているが 。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文を使用して ':= si.Name near from myDB.stud_info si ここでsi.Student_ID = in_num1; END '3行目 – zilcuanu

1

これを試してみてください: エラーレポートSQL Developerを通過する時には、上記のステートメントがエラーを与えている

DELIMITER // 
create procedure selectEmp2(IN _num1 INT,OUT _name varchar(20)) 
BEGIN 
select Name INTO _name 
from myDB.stud_info 
where Student_ID=_num1; 
END// 
+0

ストアドプロシージャを呼び出すにはどうすればよいですか? – zilcuanu

+0

あなたが働いているプラ​​ットフォーム – Vysakh

+0

ウィンドウとSQLデベロッパーとmysqlクライアントの作業 – zilcuanu

関連する問題