你用动态语句来实现就好了!
  v_sql:='SELECT count(*)  FROM GCM_SHOHIN WHERE MISE_CD IN('||i_miseCode||')';
  exec v_sql into _totalcount;

解决方案 »

  1.   

    谢谢阿林,我同事本来是这么写的,可是老板不让用动态语句,所以他才修改成这样的,我负责测试,现在这样不知道怎么才能实现啊,他想用substring,循环取子串,感觉太麻烦,不知有没有更好的方法?  SELECT count(*)into(o_totalCount) FROM GCM_SHOHIN
                WHERE MISE_CD IN(i_miseCode) ;  
    这样写错在哪里啊?
      

  2.   

    将语法改改
    create or replace procedure test1(  i_miseCode   in  varchar2, o_totalCount out number) is
    begin
             SELECT count(*) into totalCount FROM GCM_SHOHIN
                WHERE instr(i_miseCode,MISE_CD)>0; 
    end test1;测试的时候要用这种结构,如:
    exec test1('''1'',''2''',:b)
    不要直接输入'1','2'
      

  3.   

    非常感谢zmgowin(隐者(龙祖宗))