2013-04-18 4 views
6

मुझे कोई समस्या है। मैंने MySQL में एक फ़ंक्शन बनाया जो स्ट्रिंग (वर्कर डेटा प्रकार) देता है।त्रुटि कोड: 1305 MySQL, फ़ंक्शन मौजूद नहीं है

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

क्या समारोह के साथ गलत क्या है:

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) तरह फ़ंक्शन को कॉल करें, मैं इस त्रुटि मिलती है:

यहाँ वाक्य रचना है?

उत्तर

9

यह फ़ंक्शन कॉल करने का सही तरीका नहीं है।

SELECT SafetyStockChecker(16,16) FROM TableName 

जिस तरह से आप अब कर रहे हैं एक STORED PROCEDURE फोन करने के लिए है: यहाँ एक समारोह कॉल करने के लिए एक उदाहरण है। यही कारण है कि त्रुटि कहती है:

PROCEDURE inv_sbmanis.SafetyStockChecker does not exist

क्योंकि यह एक संग्रहीत प्रक्रिया की खोज कर रहा है, न कि एक समारोह।

2

आप का उपयोग करना चाहिए

SELECT SafetyStockChecker(16,16) 
संबंधित मुद्दे