提问人:root_10 提问时间:10/27/2023 最后编辑:root_10 更新时间:10/27/2023 访问量:32
“DECLARE 在此位置无效,期望 END”SQL 语法错误 [重复]
"DECLARE is not valid at this position, expecting END" SQL syntax error [duplicate]
问:
我目前正在尝试创建一个程序,该过程将根据提供的代码为课程分配新的日期。但是,我有这个语法错误,我被告知“DECLARE”在此位置无效,期望在进行光标声明的行上出现 END”。
DELIMITER $$
CREATE PROCEDURE course_schedulings(IN input_course_code CHAR(3), IN scheduling_date DATE)
BEGIN
DECLARE session_code CHAR(3);
SET session_code = (SELECT `code` FROM module WHERE module.course_code = input_course_code);
DECLARE scheduling_cursor CURSOR FOR
SELECT `date` FROM `session` WHERE `code` = input_course_code;
DECLARE complete BOOLEAN DEFAULT FALSE;
END $$
DELIMITER ;
我对我需要在这里解决的问题感到非常困惑。 我认为它与我的光标或分隔符有关?我也知道整个过程中使用的逻辑是错误的,但我不明白这会导致语法错误。
我试过使用分隔符,但收效甚微。
答:
0赞
FanoFN
10/27/2023
#1
据我所知,该职位无效。尝试使用 ,然后 。像这样的东西:DECLARE
DECLARE xxxy ...
DECLARE xxxyz CURSOR ...
SET xxxy
DELIMITER $$
CREATE PROCEDURE course_schedulings(IN input_course_code CHAR(3), IN scheduling_date DATE)
BEGIN
DECLARE session_code CHAR(3);
DECLARE complete BOOLEAN DEFAULT FALSE;
DECLARE scheduling_cursor CURSOR FOR
SELECT `date` FROM `session` WHERE `code` = input_course_code;
SET session_code = (SELECT `code` FROM module WHERE module.course_code = input_course_code);
END $$
DELIMITER ;
看看会发生什么。
评论