我的存储过程是
DELIMITER //
CREATE Add_Template(
template_id_ VARCHAR(20),
file_name_ VARCHAR(100),
template_description_ VARCHAR(500))
BEGIN
INSERT INTO application_template_tab VALUES(template_id_,file_name_,template_description_);
END//
我将此过程称为相同的.sql文件
call Add_Template('ICT','frmIct.jsp','Information Communication Technology');
call Add_Template('Bac_Bus_Adm','frmBusAdm.jsp','Bachelor of Business Administration');
但是在存储过程之后的同一个文件中,当我添加第二个调用时,它会给我以下错误,
错误代码1064,SQL状态42000:您的SQL中有错误 句法;查看与MySQL服务器版本对应的手册 正确的语法使用near' call Add_Template(' Bac_Bus_Adm',' frmBusAdm.jsp',' Bachel'在第2行
注意: - 表创建脚本
CREATE TABLE IF NOT EXISTS application_template_tab(
app_template_id VARCHAR(20) NOT NULL,
form_name VARCHAR(100) NOT NULL,
template_desc VARCHAR(500) NOT NULL,
PRIMARY KEY (app_template_id));
答案 0 :(得分:1)
在您的文件中,您正在使用;
更改默认值DELIMITER //
的语句分隔符。
这是客户端正确处理过程声明等复杂语句所必需的。
但错误表明您没有将其恢复为默认值。
在END //
之后但在CALL
语句之前,您需要:
DELIMITER ; -- note there is a space required before the ;