oracle 8.1.6 select p.product_id, p.product_name, p.dirname, r.recommendation_text, o.offer_code from ec_product_recommendations r, ec_products_displayable p, ec_user_session_offer_codes o where (p.product_id=o.product_id(+) and (user_session_id=:user_session_id or user_session_id is null)) and p.product_id = r.product_id and r.${sub}category_id=:${sub}category_id and r.active_p='t' and (r.user_class_id is null or r.user_class_id in (select user_class_id from ec_user_class_user_map m where user_id=:user_id $user_class_approved_p_clause)) order by p.product_name select count(*) as product_count from $product_map($sub) m, ec_products_searchable p, ec_user_session_offer_codes o where (p.product_id=o.product_id(+) and (user_session_id=:user_session_id or user_session_id is null)) and p.product_id = m.product_id and m.${sub}category_id = :${sub}category_id $exclude_subproducts select r.* from ( select rownum as r_rownum, q.* from ( select p.product_id, p.dirname, p.product_name, p.one_line_description, o.offer_code from $product_map($sub) m, ec_products_searchable p, ec_user_session_offer_codes o where (p.product_id=o.product_id(+) and (user_session_id=:user_session_id or user_session_id is null)) and p.product_id = m.product_id and m.${sub}category_id = :${sub}category_id $exclude_subproducts order by p.product_name ) q ) r where r_rownum => :start_row and r_rownum <= :start_row + :how_many