insert into category_temp
values (:tree_id)
and (upper(n.object_name) < 'A' or upper(n.object_name) > 'Z')
and upper(n.object_name) like :bind_letter
select v.object_id
from (select distinct m.object_id, c.category_id
from category_object_map m, categories c, category_temp t
where c.category_id = t.category_id
and m.category_id in (select c_sub.category_id
from categories c_sub
where c_sub.tree_id = c.tree_id
and c_sub.left_ind >= c.left_ind
and c_sub.left_ind < c.right_ind)) v
group by v.object_id having count(*) = :category_ids_length
select m.object_id
from category_object_map m, category_temp t
where m.category_id = t.category_id
group by m.object_id having count(*) = :category_ids_length
insert into category_temp
values (:category_id)