我从前台页面上获得一个字段的值,这个字段的的值是包含逗号字符的字符串,我要把这个字段的值放到oralce存储过程中做为一个sql的查询条件,要在存储过程中怎么实现将这个字符串通过逗号分割开为子字符串,且这些子字符串之间是的关系并被作为查询条件。

解决方案 »

  1.   

    先将字符串按照逗号来截取 再通过动态sql拼接成sql语句
      

  2.   

    如果前台得到的字符串值为  A,B,C,D (orgString)
    然后你希望查询的条件类似于 
    and xxx.yyy in ('A','B','C','D') 最简单的办法就是用 replace 把  A,B,C,D 变为 A','B','C','D
    然后再拼接
    asSql = asSql||'
    and xxx.yyy in ('''||replace(orgString,',',''',''')||''')';asSql就是最后要执行的动态语句 ( execute immediate asSql into xxxxxx... )
      

  3.   

    但请注意 A,B,C,D 逗号和文本值之间不能有空格,否则以上方法会有问题。