有没有办法在我的存储过程中获取导致 SQLEXCEPTION 的 MySQL 代码行?
Posted
技术标签:
【中文标题】有没有办法在我的存储过程中获取导致 SQLEXCEPTION 的 MySQL 代码行?【英文标题】:Is there a way to get the line of MySQL code that caused a SQLEXCEPTION in my stored procedure? 【发布时间】:2013-10-24 17:33:55 【问题描述】:我在我的存储过程中使用此代码来获取有关 SQLEXCEPTION 的信息:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS condition 1
@SQLState = RETURNED_SQLSTATE, @SQLMessage = MESSAGE_TEXT;
SELECT CONCAT('Database error occurred, state - ',@SQLState, '; error msg - ', @SQLMessage) INTO @errorString;
CALL Collectors_Errors
(@errorString,
'Collectors_UpdateGame',
barcodeApp,
usernameApp);
END;
这段代码的问题是即使我知道错误是什么,它也没有告诉我它发生在哪一行。我的一些存储过程很长。
有没有办法确定导致异常的行号或行是什么?
【问题讨论】:
【参考方案1】:您可以尝试使用rdebug 工具来调试您的存储过程。我没用过,但我发现common_schema 中的其他工具非常有用。
可能有一种更简单的快速修复方法可以准确地找到这个错误的来源,但是在您使用长存储过程时,您可能会发现 rdebug 对解决这个错误很有帮助。
【讨论】:
以上是关于有没有办法在我的存储过程中获取导致 SQLEXCEPTION 的 MySQL 代码行?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法限制用户可以使用 iTunes 文件共享在我的应用程序中存储的文件类型?