WHERE (zhangrong.fund_id in (10,12,18)) and (zhangrong.exchange_code in ('SHA','SZA'))
在存储过程中如果我想把(10,12,18)和('SHA','SZA')这两个集合用变量传进来.
v_p_a = 10,12,18
v_p_b = 'SHA','SZA'
WHERE (zhangrong.fund_id in (v_p_a)) and (zhangrong.exchange_code in (v_p_b))
这样传不行,我应该怎么传呢?
 

解决方案 »

  1.   

    试试这样行不:
    v_1=10
    v_2=12
    v_3=18
    v_4='SHA'
    v_5='SZA'WHERE (zhangrong.fund_id in (v_1,v_2,v_3)) and (zhangrong.exchange_code in (v_4,v_5))
      

  2.   

    可以把v_p_a,v_p_b根据逗号分解开来赋值给变量v_1,v_2,v_3...
      

  3.   

    1、
    将v_p_a 和 v_p_b改为以字符“/”连接的字符串变量
    入v_p_a='10/12/18'和'SHA/SZA'
    2、
    编写一个过程,解析传入的字符串v_p_a和v_p_b,以字符"/"将字符串分开存储到表中或者存储到设定的n个变量中
    3、
    将变量或表结合到where 后面的 in中