创建一个MySQL过程来声明一个游标来 Select 姓氏,首先
从EMPLOYEE表中获取姓名、工资和雇用日期.每一行
并打印员工的信息,如果员工的
薪金超过50,000美元,雇用日期在1997年12月31日之前
(显式游标问题).
这是我正在创建过程的问题陈述,但是我收到一个接近loop:
的错误消息.我无法理解错误的确切原因.这是我们的密码:
DELIMITER //
CREATE PROCEDURE GetHighEarnersBefore1998(IN salary_threshold DECIMAL(10,2))
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE emp_last_name VARCHAR(50);
DECLARE emp_first_name VARCHAR(50);
DECLARE emp_salary DECIMAL(10,2);
DECLARE emp_hire_date DATE;
DECLARE emp_cursor CURSOR FOR SELECT last_name, first_name, salary, hire_date FROM EMPLOYEE;
OPEN emp_cursor;
loop:
FETCH emp_cursor INTO emp_last_name, emp_first_name, emp_salary, emp_hire_date;
SET done = CURSOR_ROWCOUNT = 0;
IF emp_salary > salary_threshold AND emp_hire_date < '1997-12-31' THEN
SET done = TRUE;
SELECT CONCAT(emp_last_name, ', ', emp_first_name), emp_salary, emp_hire_date;
END IF;
LEAVE loop WHEN done;
END LOOP;
CLOSE emp_cursor;
END //
DELIMITER ;