我是做前端运维,后端的程序因为没有代码改不动,现在有一个场景,前端会给后端传递一个变量,用来执行一段sql查询,后端的sql是类似:select column1, column2 ...... from tab where columnx = 'condition';的这样一个查询,condition就是我从前端要传给后端的一个变量。
这个程序之前的设计思路只限于查询单个条件,前端只能给后端传递唯一的condition才能正确执行。但目前有个需求,需要前端给后端传递多个条件,并返回多个结果,在没有条件改后端程序的情况下,能否有变通的方法?
另外需要说明的是,这是一个erp软件的流程提交过程,我是要指定流程传递的参数,所以不具备写for循环的条件;另外,之前我也尝试过利用sql注入的方式处理,即传递condition时带上sql语句,但跟踪发现后台程序发现有sql注入后会将前台传递的condition抛弃,所以也不行;再后来我还想过利用any函数,即传递一个any('condition1','condition2','condition3')这样的一个值过去,但是这样的参数传递方法,后台虽然不会被抛弃,但是因为后台的代码中condition是在引号里的,any函数被解析成了文本,所以也不行。
我现在是绞尽脑汁也没有好的办法了,哪位大神有方法,在不改变后端代码的前提下实现我的需求,小弟在此拜谢了。
另外,数据库环境是oracle 11g。