संग्रहित प्रक्रिया में से संग्रहीत फ़ंक्शन को कॉल करने का प्रयास करते समय मुझे 1064 त्रुटि मिल रही है। यह केवल उस रेखा पर होता है जहां मैं ऐसा करने का प्रयास करता हूं: SET account_id = get_account_id(user);
। समस्या क्या है और मैं इसे कैसे ठीक कर सकता हूं?MySql संग्रहीत फ़ंक्शन को संग्रहीत प्रक्रिया के भीतर से कॉल कर रहा है जिससे त्रुटि
खाता आईडी संग्रहित कार्य:
CREATE DEFINER=`aaron`@`%` FUNCTION `get_account_id`(user VARCHAR(255)) RETURNS int(11)
BEGIN
DECLARE xaccount_id INT DEFAULT 0;
#Get Account ID and place into variable used when calling stored procedure that builds the tree structure for the leaf node portfolio id
SELECT account_id
FROM rst_sessions.session_data
WHERE username = user
ORDER BY update_date DESC LIMIT 1
INTO xaccount_id;
RETURN xaccount_id;
END
संग्रहित प्रक्रिया है कि संग्रहीत समारोह कॉल करने के लिए कोशिश कर रहा है:
CREATE DEFINER=`aaron`@`%` PROCEDURE `build_report_portfolio_list`(user VARCHAR(255))
READS SQL DATA
BEGIN
DECLARE portf_id INT;
DECLARE portf_name VARCHAR(255);
DECLARE str_portf_parent_list VARCHAR(455);
DECLARE done INT DEFAULT 0;
DECLARE account_id INT;
SET account_id = get_account_id(user);
END
मैं समारोह की बात नहीं दिख रहा है - संग्रहीत प्रक्रिया के भीतर समारोह से क्वेरी का उपयोग करें। और हालांकि मुझे उस खंड से पहले होने की आवश्यकता है ... –
अच्छी तरह से, मैंने फ़ंक्शन के बिंदु को छोड़ दिया ... फ़ंक्शन को उपयोगकर्ता नाम प्राप्त होता है और खाता_आईडी पुनर्प्राप्त करने के लिए तालिका को क्वेरी करता है, फिर उस खाता आईडी को वापस लौटाता है खाता_आईडी नामक एक चर, जिसे तब किसी अन्य क्वेरी ("SET account_id" के बाद कोड) के लिए उपयोग किया जाता है, जिसे मैंने आसानी से पढ़ने के लिए छोड़ दिया ... यदि मैं "SET account_id ....." पंक्ति को टिप्पणी करता हूं तो मैं कोई त्रुटि नहीं है। – Ronedog