-- drop procedure SP_TEST_ERR; DELIMITER // create procedure SP_TEST_ERR() myexit_label:BEGIN declare v_proc_name varchar(50) default 'SP_TEST_ERR'; -- 程序名称 declare v_err_msg varchar(1024); -- 错误描述 declare v_sql varchar(4000) default ''; -- 动态sql declare v_proc_sjms varchar(100); -- 日志描述 DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @sqlcode = MYSQL_ERRNO, @sqlerrm = MESSAGE_TEXT; SET i_err_no = 1; -- 记录详细错误日志 CALL SP_PASSYS_XTRZ('2', v_proc_name,concat('SQLSTATE:',@sqlstate,'; 错误代码:',@sqlcode,'; 错误信息:',@sqlerrm) ); END; set @sql='select * from myhaahtabl'; prepare stmt from @sql; execute stmt; DEALLOCATE PREPARE stmt; commit; end// DELIMITER ;