有一个查询语句,
select * from a where a.dept_id in (11,12,13,14,15)
我的11,12,13,14,15...是从另一张表中得来的。
select id from dept_role where role_id=8
问题是这个id字段是一个字符串,它的组成类似这样: $11$12$13$14$15$。如果这个字段太长,我的查询语句就很长,甚至超过oracle规定的sql语句长度限制,ORA-01795:列表中的最大表达式数为1000。
请问如何解决?把1000的限制改得更大,还是运用某函数实现?比如select * from a where a.dept_id in (select ff(id) from dept_role where role_id=8)