mysql “DESCRIBE在此位置无效,需要END”SQL语法错误[重复]

nwo49xxi  于 2023-11-16  发布在  Mysql
关注(0)|答案(1)|浏览(130)

此问题在此处已有答案

Error mysql syntax use 'declare pfee int default null;',check the manual that corresponds to your MySQL server version(1个答案)
20天前关闭。
我目前正在尝试创建一个过程,它将根据提供的代码为课程会话分配新的日期。但是,我遇到了这个语法错误,我被告知“DESTATE”在此位置无效,在游标声明所在的行上应该是“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 ;

字符串
我真的很困惑,我需要在这里修复什么。我假设它与我的光标或分隔符有关?我也知道整个过程中使用的逻辑是错误的,但我不明白这将如何导致语法错误。
我试着摆弄了一下分隔符,但没有什么结果。

blmhpbnm

blmhpbnm1#

从我所看到的,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 ;

字符串
看看会发生什么。

相关问题