我写了个存储过程,在使用游标时,传入的参数是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;

解决方案 »

  1.   

    这里要要用动态语句的,try:DECLARE cur_get_cz_code DYNAMIC CURSOR FOR SQLSA ;
      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  ;
    ....
      

  2.   

    写动态报错 说语法错误  怎么回事啊? dECLARE cur_get_cz_code DYNAMIC CURSOR FOR SQLSA ;
      

  3.   

    BEGIN
         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);