(本文档仅供参考)
问题
电子表格中如何使用SSR函数传递多选下拉框的问题,数据库为oracle。
解决方案
使用SSR_ExecNamedSQL函数,当传递的值为多个逗号分割开的值的时候,需要对配置的映射SQL进行调整,具体可参考如下示例,将where后面的in语句替换为 instr语句:
select sum(CATEGORYID) as sz From NORTHWIND.CATEGORIES where instr(','||?||',',','||CATEGORYNAME||',',1,1)>0
后台查看传参确实是逗号区分开的,而实际sql拼接的是 in('a,b,c'),这样是无法查询出数据的,因此需要对参数进行处理,要拼成 in('a','b','c') 的格式的或者in select 出来的一个结果集,这样多选才能正确查询出数据,另外oracle里的in只能用于常量或变量列表,不能用于拼接的字符串,因此不能用参数拼接引号的方式处理,需要从sql上进行处理