gpt4 book ai didi

sql - MySql从存储过程中调用存储函数导致错误

转载 作者:可可西里 更新时间:2023-11-01 06:44:16 25 4
gpt4 key购买 nike

尝试从存储过程中调用存储函数时出现 1064 错误。它只发生在我尝试这样做的行上:SET account_id = get_account_id(user);。问题是什么,我该如何解决?

账户 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

最佳答案

我什至不知道我尝试做的事情是否可能导致错误。但是我通过调用 SF 作为参数调用 SP 找到了解决方法,并让它执行我需要它执行的操作。

代码是:CALL build_report_portfolio_list(get_account_id('username_here'));

关于sql - MySql从存储过程中调用存储函数导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4055434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com