oracle8.1.6
select grantee_id, grantee_name, privilege
from (select grantee_id, acs_object.name(grantee_id) as grantee_name,
privilege, 1 as counter
from acs_permissions_all
where object_id = :object_id
union all
select grantee_id, acs_object.name(grantee_id) as grantee_name,
privilege, -1 as counter
from acs_permissions
where object_id = :object_id )
group by grantee_id, grantee_name, privilege
having sum(counter) > 0
select count(*) from (
select grantee_id, grantee_name, privilege
from (select grantee_id, acs_object.name(grantee_id) as grantee_name,
privilege, 1 as counter
from acs_permissions_all
where object_id = :object_id
union all
select grantee_id, acs_object.name(grantee_id) as grantee_name,
privilege, -1 as counter
from acs_permissions
where object_id = :object_id )
group by grantee_id, grantee_name, privilege
having sum(counter) > 0
) as counts
select object_id as c_object_id,acs_object.name(object_id) as c_name, object_type as c_type
from acs_objects o
where context_id = :object_id
and exists (select 1
from acs_object_party_privilege_map
where object_id = o.object_id
and party_id = :user_id
and privilege = 'admin')
select count(*) as num_children
from acs_objects o
where context_id = :object_id and
acs_permission.permission_p(o.object_id, :user_id, 'admin') = 't'