今天突然想起前阵子遇到的一个plsql传参问题,趁记着mark下。
问题是这样,我想从java中传入一个字符串到存储过程getDate(v_str varchar2),存储过程中这样调用
select * from table where id in(v_str);
v_str格式:“id1,id2,id3”
但是不成功,原因是plsql会把v_str当成一整个字符来处理,意思也就是说in的结果里是一个字符,不是多个,所以查询不出结果。
这种情况通常处理时直接在存储过程中查询出in中的结果,而不是当个参数传进来。
问题是这样,我想从java中传入一个字符串到存储过程getDate(v_str varchar2),存储过程中这样调用
select * from table where id in(v_str);
v_str格式:“id1,id2,id3”
但是不成功,原因是plsql会把v_str当成一整个字符来处理,意思也就是说in的结果里是一个字符,不是多个,所以查询不出结果。
这种情况通常处理时直接在存储过程中查询出in中的结果,而不是当个参数传进来。