简体   繁体   English

存储过程mysql语法

[英]Stored procedure mysql syntax

Please help me to solve the mistake done in this stored procedure: 请帮助我解决此存储过程中的错误:

 CREATE DEFINER=`root`@`localhost` PROCEDURE `repos`(IN `order_condition` VARCHAR(100) CHARSET utf8, IN `from_date` VARCHAR(255) CHARSET utf8, IN `to_date` VARCHAR(255) CHARSET utf8, IN `dept_id` TINYINT(4), IN `type` VARCHAR(15) CHARSET utf8, IN `search_value` VARCHAR(50) CHARSET utf8, IN `institutionid` INT(11))
    NO SQL
BEGIN

set @strWhere   = "";
set @strWhere   = CONCAT(@strWhere,"t1.inst_id = ",instid);
set @selectstr  = '';
set @selectstr2 = '';
set @joinstr    = '';
set @joinstr2   = '';
set @group2= '';

set @selectstr = CONCAT(",t2.`std_name`");
set @selectstr2= CONCAT(",t5.`student_name`,t5.`roll_no`,t5.`student_id`");
set @joinstr = CONCAT("left join standard_master as t2 on t1.`std_id`= t2.`std_id` ");
set @joinstr2 = CONCAT("left join student_det as t5 on t1.`std_id`= t5.`std_id` ");
set @strWhere = CONCAT(@strWhere," AND t1.std_id = ",dept_id);
set @group2= CONCAT("t5.`student_id`");


SET @query = CONCAT("select t1.* ",@selectstr," , t3.term_name, SUM(t4.amount) as fee_amount",@selectstr2," FROM inst_fee AS t1 ",@joinstr," left join term_master as t3 on t1.term_id = t3.term_id left join inst_amtdet as t4 on t4.masterid = t1.masterid ",@joinstr2,"  WHERE ",@strWhere,  " AND ",@group2,  " NOT IN (select id from student_master) Group by t1.f_name  ", order_condition);

PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

#select @query;


END

It shows a syntax error: 它显示语法错误:

You have an error in your SQL syntax; 您的SQL语法有误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN( 请查看与您的MySQL服务器版本相对应的手册,以获取在'IN(

Please help me to fix the error. 请帮助我修复错误。 Thanks 谢谢

The syntax is correct. 语法正确。 It works on new MySQL servers. 它适用于新的MySQL服务器。

It is possible that you use old MySQL server, where CHARSET clause was not supported for string parameters. 可能使用的是旧的MySQL服务器,其中字符串参数不支持CHARSET子句。 Check the syntax for your server version. 检查服务器版本的语法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM