2013-04-18 20 views
6

問題があります。私はString(varcharデータ型)を返すMySQLで関数を作成しました。ここでエラーコード:1305 MySQL、関数が存在しません

構文です:私はcall SafetyStockChecker(16,16)のような関数を呼び出すとき

DELIMITER $$ 
USE `inv_sbmanis`$$ 
DROP FUNCTION IF EXISTS `SafetyStockChecker`$$ 

CREATE DEFINER=`root`@`localhost` FUNCTION `SafetyStockChecker` 
(jumlah INT, safetystock INT) 
RETURNS VARCHAR(10) CHARSET latin1 
BEGIN 
DECLARE statbarang VARCHAR(10); 
IF jumlah > safetystock THEN SET statbarang = "Stabil"; 
ELSEIF jumlah = safetystock THEN SET statbarang = "Perhatian"; 
ELSE SET statbarang = "Kritis"; 
END IF; 
RETURN (statbarang); 
END$$ 
DELIMITER ; 

、私はこのエラーを取得する:

Query : call SafetyStockChecker(16,16)
Error Code : 1305
PROCEDURE inv_sbmanis.SafetyStockChecker does not exist
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000

機能が悪いのか?

答えて

9

これは、関数を呼び出す正しい方法ではありません。ここでは関数を呼び出す例です:あなたが今やっている

SELECT SafetyStockChecker(16,16) FROM TableName 

方法はSTORED PROCEDUREを呼び出すためのものです。そのため、エラーは次のように表示されます。

PROCEDURE inv_sbmanis.SafetyStockChecker does not exist

機能ではなくストアドプロシージャを検索しているためです。

2

あなたは使うべき

SELECT SafetyStockChecker(16,16) 
関連する問題