postgresql7.1 select portal__new ( null, :name, :theme_id, :layout_id, :template_id, :default_page_name, 'portal', now(), null, null, :context_id ); begin portal__delete (:portal_id); end; update portal_element_map set region = :region, page_id = :page_id, sort_key = (select coalesce((select max(pem.sort_key) + 1 from portal_element_map pem where pem.page_id = :page_id and region = :region), 1) from dual) where element_id = :element_id update portal_element_map set page_id = :page_id, region = :region, sort_key = (select coalesce((select max(sort_key) + 1 from portal_element_map where page_id = :page_id and region = :region), 1) from dual) where element_id = :element_id insert into portal_element_map (element_id, name, pretty_name, page_id, datasource_id, region, sort_key) values (:new_element_id, :ds_name, :pretty_name, :page_id, :ds_id, :region, coalesce((select max(sort_key) + 1 from portal_element_map where region = :region and page_id = :page_id), 1)) update portal_element_map set region = :target_region, sort_key = (select coalesce((select max(pem.sort_key) + 1 from portal_element_map pem where page_id = :my_page_id and region = :target_region), 1) from dual) where element_id = :element_id select portal_page__new ( null, :pretty_name, :portal_id, :layout_id, 'portal_page', now(), null, null, null ); select portal_page__delete ( :page_id );