有如下存储过程,现在我想在参数v_CODE中传多个客户的CODE,以返回多个指定CODE的客户的信息,应该怎么处理?
PROCEDURE GetCustomerByPKID 
    (
      v_CODE              CUSTOMER.CODE%TYPE,
      cur_OUT  OUT   myCursor
   )     
   IS   
   BEGIN  
   OPEN cur_OUT FOR   
   SELECT ID,CODE,CUSTOMERNAME,CUSTOMERCODE,ADDRESS   FROM CUSTOMERPOST  
   WHERE CODE in (v_CODE);  
   END GetCustomerByPKID;  以前我通常通过动态SQL实现, 
"SELECT PKID,CUSTOMERNAME,CUSTOMERCODE,ADDRESS   FROM CUSTOMERPOST  
   WHERE PKID in ("+v_CODE+")";  
这样v_CODE可以任意组合.但在存储过程参数里面,任意组合的参数v_CODE被当作了一个条件,从而导致无法查出结果.知道的朋友请指点一下,谢谢!

解决方案 »

  1.   

    这样v_CODE可以任意组合.但在存储过程参数里面,任意组合的参数v_CODE被当作了一个条件,从而导致无法查出结果.楼主,在pl/sql里不能用in,你可以继续用你原来的方法,动态sql,条件改成intstr(v_CODE)。这样能实现。
      

  2.   

    哦,应该是intstr(v_CODE, PKID)。
      

  3.   

    找到了。楼主可以看看
    http://community.csdn.net/Expert/topic/5017/5017983.xml?temp=.7903253