我写了个存储过程,在使用游标时,传入的参数是dd,当输入如:11,22,33时就查不出数据,好象把11,22,33当成一个整体处理了,如果输入当个值就可以,请问是怎么解决,谢谢.
DECLARE cur_get_cz_code CURSOR FOR select cz_zt_code,cz_code from xt_cz_zt,xt_cz where xt_cz.cz_zt=xt_cz_zt.cz_zt_code and cz_code in(dd);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
DECLARE cur_get_cz_code CURSOR FOR select cz_zt_code,cz_code from xt_cz_zt,xt_cz where xt_cz.cz_zt=xt_cz_zt.cz_zt_code and cz_code in(dd);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
PREPARE SQLSA FROM concat('select cz_zt_code,cz_code from xt_cz_zt,xt_cz where xt_cz.cz_zt=xt_cz_zt.cz_zt_code and cz_code in(''',dd,''')') ;
OPEN DYNAMIC cur_get_cz_code ;
....
DECLARE cz_state_code varchar(15); /*餐桌状态编码*/
declare yd_count int; /*判断一个餐桌是否还有预定*/
declare dc_count int; /*判断是否点菜*/
declare char_cz_code varchar(15);
DECLARE done INT DEFAULT 0;
declare dd varchar(10) default '45,55';
PREPARE SQLSA FROM 'select cz_zt_code,cz_code from xt_cz_zt,xt_cz where xt_cz.cz_zt=xt_cz_zt.cz_zt_code';
DECLARE cur_get_cz_code DYNAMIC CURSOR FOR SQLSA ;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN DYNAMIC cur_get_cz_code;
REPEAT
FETCH cur_get_cz_code INTO cz_state_code,char_cz_code; INSERT into test values(char_cz_code);