-1

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), ' at line 1 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください

4

1 に答える 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 ;
于 2009-07-24T23:54:01.867 に答える