2017-10-08 7 views
0

にプロシージャを格納し、私は、MySQLのストアドプロシージャを作成しようとすると、私は問題を抱えて下さい、どのように私は、MS SQLからMySQLの

SQL Server上で私の手順で変換することができます:

//// SQLサーバー///

create Proc [dbo].[P_TestSup] @para1 int, @para2 bit output as 
begin 
     select @para2= count(IdCV) from CommandeVente,Client where 
     CommandeVente.IdClnCV=Client.IdCln and [email protected] 
End 

私は、MySQL上でそれを書くようにしてくださいが、それは正しくない

Error: check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

////// MySQLのです//////

CREATE PROCEDURE P_TestSup(IN para1 INT, OUT para2 bit) 
begin 
select count(commandevente.idcv) into para2 from commandevente,client 
    where commandevente.idclncv= client.idcln and client.idcln=para1; 
End 

答えて

0

おそらく問題はDELIMITERの不足です。そして、JOIN構文を修正します。出力パラメータの種類また、私は命名には注意が必要です。このような

何か:

DELIMITER $$ 

CREATE PROCEDURE P_TestSup(
    in_para1 INT, 
    OUT out_para2 INT 
) 
BEGIN 
    SELECT count(commandevente.idcv) into out_para2 
    FROM commandevente ce 
     client c 
     ON ce.idclncv = c.idcln ; 
END;$$ 

DELIMITER ; 
+0

私は==> とc.idcln = in_para1のような条件を追加したいときに私の質問は、いくつかの編集 が必要すみません。彼らは言った; ;右側の構文がON ce.idclncv = c.idclnとc.idcln = in_para1の近くで使用するようにMySQLサーバのバージョンに対応するマニュアルを確認してください。 DELIMITER $$ はDEFINERをCREATE = 'root' @' localhost' PROCEDURE 'P_TestSup'(in_para1のINTで、OUT out_para2 END '> === を助けるためのラインで3人の –

+0

おかげで、私はこのコードを使用し、それが働いています' INT) BEGIN out_para2からのコマンド(クライアントコマンド)からのselect count(commandevente.idcv)ce.idclncv = c.idclnおよびc.idcln = in_para1; END $$ DELIMITER; –

関連する問題