错误代码:1305 MySQL,功能不存在

时间:2013-04-18 08:24:10

标签: mysql function

我有问题。我在MySQL中创建了一个函数,它返回一个String(varchar数据类型)。

这是语法:

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 ;

当我调用类似call SafetyStockChecker(16,16)的函数时,我收到此错误:

  

查询:致电SafetyStockChecker(16,16)
      错误代码:1305
      程序inv_sbmanis.SafetyStockChecker不存在
      执行时间:00:00:00:000
      转机时间:00:00:00:000
      总时间:00:00:00:000

该功能出了什么问题?

2 个答案:

答案 0 :(得分:11)

这不是调用函数的正确方法。以下是调用函数的示例:

SELECT SafetyStockChecker(16,16) FROM TableName

您现在的做法是拨打STORED PROCEDURE。这就是错误说明的原因:

  

程序inv_sbmanis.SafetyStockChecker不存在

因为它正在搜索存储过程而不是函数。

答案 1 :(得分:2)

你应该使用

SELECT SafetyStockChecker(16,16)