MYSQL 存储过程异常处理 报错 错误代码: 1337
来源:互联网 发布:国外网络安全设备品牌 编辑:程序博客网 时间:2024/06/05 16:47
百度了一下都是在说,要先声明变量,再开始游标。
游标(cursor)必须在声明处理程序之前被声明,并且变量和条件必须在声明游标或处理程序之前被声明。
错误代码: 1337
Variable or condition declaration after cursor or handler declaration
错误的写法:
DROP PROCEDURE IF EXISTS `proc_statistical` ;
DELIMITER ;;
CREATE DEFINER = `root` @`localhost` PROCEDURE `proc_statistical` ()
BEGIN
#Routine body goes here...
-- 遍历数据结束标志
DECLARE t_error INTEGER DEFAULT 0;
-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND SET @t_error = 1;
DECLARE cnt INT ;
START TRANSACTION ;
内容
IF @t_error = 1 THEN
ROLLBACK;
// 纪录失败日志
ELSE
// 记录成功日志
COMMIT;
END IF;
END ;;
DELIMITER ;
CALL proc_statistical();
报错的错误信息:
会提示在 DECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND S右边出错。
错误代码: 1337
Variable or condition declaration after cursor or handler declaration
仔细查询了资料之后发现:如果你把游标定义在其他变量之前,会出现错误1337。
正确的写法:
DROP PROCEDURE IF EXISTS `proc_statistical` ;
DELIMITER ;;
CREATE DEFINER = `root` @`localhost` PROCEDURE `proc_statistical` ()
BEGIN
#Routine body goes here...
DECLARE cnt INT ;
-- 遍历数据结束标志
DECLARE t_error INTEGER DEFAULT 0;
-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND SET @t_error = 1;
START TRANSACTION ;
内容
IF @t_error = 1 THEN
ROLLBACK;
// 纪录失败日志
ELSE
// 记录成功日志
COMMIT;
END IF;
END ;;
DELIMITER ;
CALL proc_statistical();
- MYSQL 存储过程异常处理 报错 错误代码: 1337
- Mysql存储过程--异常处理
- mysql存储过程异常处理
- mysql 存储过程异常处理
- mysql存储过程异常处理
- MySql:存储过程编译错误代码1337
- JDBC执行mysql存储过程报异常
- mysql存储过程错误代码1307
- MySQL 存储过程的异常处理
- Mysql 5 存储过程异常处理
- mysql存储过程之异常处理篇
- mysql存储过程之异常处理篇
- mysql存储过程中异常处理
- mysql存储过程之异常处理篇
- mysql存储过程之异常处理篇
- 存储过程异常处理
- 存储过程异常处理
- 含SQLSTATE mysql错误代码汇总大全,可用于存储过程判断异常情况
- 四元数乘积
- 三角形
- Gym
- Something About Python(numpy,pandas)
- 网易云对象存储获取私有对象下载链接打不开的问题
- MYSQL 存储过程异常处理 报错 错误代码: 1337
- beautifulSoup
- C# Dapper 基本使用 增删改查事务等
- 数据结构实验之查找五:平方之哈希表
- Android开源库——EventBus源码解析
- //编写一个学生类(Students),包括姓名(name)、性别(sex)、学号(num)、语文课(Chinese)、英语课(English)、 //数学课(Math)和平均值(avg),方法包括求
- C++ -- operator定义为friend function
- 一篇写的很好的XGBoost的博客(于简书转载)
- 哈希学习