6
我在嘗試從存儲過程中調用存儲函數時出現1064錯誤。它只發生在我嘗試執行此操作的行上:SET account_id = get_account_id(user);
。有什麼問題,我該如何解決它?MySql調用存儲過程中的存儲函數導致錯誤
帳戶ID存儲功能:
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
我沒有看到功能點 - 在存儲過程中使用查詢從功能。我雖然INTO需要在FROM子句之前... – 2010-10-29 20:01:28
好吧,我忽略了函數的意義...函數接收用戶名並查詢表以檢索account_id,然後將該帳號id返回到一個名爲account_id的變量,然後用於另一個查詢(「SET account_id」之後的代碼),爲了便於閱讀,我省略了該變量......如果我註釋掉「SET account_id .....」行,則我不要有任何錯誤。 – Ronedog 2010-10-29 20:03:27