2009-07-24 22 views
-1

MYSQLでストアドプロシージャを作成しようとしています。以下は私のコードです は構文エラーです。誰でも助けてくれますか?mysqlの構文エラー

CREATE PROCEDURE productpricing ( 
    OUT pl DECIMAL(8,2),  
    OUT ph DECIMAL(8,2),  
    OUT pa DECIMAL(8,2)  
) 

BEGIN 

    SELECT Min(prod_price) INTO pl  
    FROM products; 

    SELECT Max(prod_price) INTO ph 
    FROM products; 

    SELECT Avg(prod_price) INTO pa 
    FROM products; 

END; 

...とエラーは次のとおりです。

あなたのSQL構文でエラーが発生しています。ラインに近い 'PROCEDUREのproductpricing( OUT PL DECIMAL(8,2)、 OUT用pH DECIMAL(8,2)、 ' を使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください1

答えて

2

終了させることができる手続き定義する前に、クライアント(コマンドラインまたはその他)によって解釈することができますMySQLの区切り文字を、変更してみてください

はこれを試してみてください:。

DELIMITER // 
CREATE PROCEDURE productpricing ( 
    OUT pl DECIMAL(8,2),  
    OUT ph DECIMAL(8,2),  
    OUT pa DECIMAL(8,2)  
) 

BEGIN  
    SELECT Min(prod_price)  
    INTO pl  
    FROM products; 

    SELECT Max(prod_price)  
    INTO ph  
    FROM products; 

    SELECT Avg(prod_price)  
    INTO pa  
    FROM products;  
END// 

DELIMITER ;