/* Список групп */
SELECT g.object_name as group_nane
FROM hsp_group ug, hsp_object g
WHERE ug.group_id = g.OBJECT_ID
ORDER by ug.group_id;
/* Список пользователей и групп */
SELECT g.object_name as group_nane, u.object_name as user_name
FROM hsp_usersingroup ug
, hsp_object g
, hsp_object u
WHERE ug.group_id = g.OBJECT_ID
AND ug.user_id = u.OBJECT_ID
ORDER by ug.group_id;
/* Статусы сценариев */
SELECT scenario.object_name Scenario
, start_y.object_name Start_Year
, end_y.object_name End_Year
, start_p.object_name Start_Period
, end_p.object_name End_Period
FROM HSP_SCENARIO s
, hsp_object scenario
, hsp_object start_y
, hsp_object end_y
, hsp_object start_p
, hsp_object end_p
WHERE 1=1
AND s.scenario_id = scenario.object_id
AND s.start_yr_id = start_y.object_id
AND s.end_yr_id = end_y.object_id
AND s.start_tp_id = start_p.object_id
AND s.end_tp_id = end_p.object_id;
/* Настройка безопасности */
SELECT user_name, o_name memeber,
case when ACCESS_MODE=-1 then 'None'
when ACCESS_MODE=3 then 'Write'
when ACCESS_MODE=1 then 'Read'
else 'UnKnown'
end access_type,
case when FLAGS=0 Then 'MEMBER'
when FLAGS=9 Then '@IDESCENDANTS'
when FLAGS=8 Then '@DESCENDANTS'
when FLAGS=6 Then '@ICHILDREN'
when FLAGS=5 Then '@CHILDREN'
else 'UnKnown'
end member_type
FROM HSP_ACCESS_CONTROL
inner join (SELECT object_name as user_name, object_id as u_id
FROM hsp_object) u
on hsp_access_control.user_id=u_id
inner join (SELECT object_name as o_name, object_id as o_id
FROM hsp_object WHERE hsp_object.object_type !=7 ) o
on OBJECT_ID=o_id;
/* Пример построение parent-child запроса */
SELECT object_name
FROM hsp_object
WHERE 1=1
--and has_children = 0 -- только уровень 0
START WITH UPPER(object_name) = UPPER('Account') -- все потомки Account
CONNECT BY PRIOR object_id = parent_id;
/* Пример запроса для выгрузки настроек измерения Account */
SELECT o2.object_name PARENT ,
o.object_name CHILD ,
o.generation ,
o.position ,
DECODE(m.data_storage, 2, 'O', 5, 'X', 'N') data_storage, -- N Never, O - Label, X - Dynamic ,
DECODE(m.twopass_calc, 1, 'T', '') twopass_calc ,
m.data_type ,
DECODE(m.consol_op1, 6, '^', 5, '~', '+') consol_op ,
DECODE(a.time_balance, 2, 'L', '') time_balance ,
a.account_type ,
DECODE(a.variance_rep, 1, 'E', '') variance_rep ,
path
FROM hsp_member m ,
(SELECT parent_ID,
OBJECT_ID,
object_name,
generation,
position,
sys_connect_by_path( acc.object_name, '/') path
FROM hsp_object acc
WHERE 1 =1
START WITH acc.object_name = 'Account'
CONNECT BY PRIOR acc.object_id = acc.parent_id
) o ,
HSP_OBJECT o2 ,
hsp_account a
WHERE 1 =1
AND O.OBJECT_ID = m.member_id
AND O.parent_ID = O2.OBJECT_ID
AND m.member_id = a.account_id
AND a.used_in = '1' -- For 1-st plan;
/* Список измененных объектов в Planning, которые должны обновиться в Essabse */
SELECT 'PL' AS application,
ot.type_name object_type,
t.object_id,
t.plan_type,
t.xact_type,
t.object_name,
t.old_name,
t.xact_date,
t.src_mbr,
o.modified_by
FROM hp_PL.hsp_pending_xacts t,
hp_PL.hsp_object o,
hp_PL.hsp_object_type ot
WHERE t.object_id = o.object_id(+)
AND o.object_type = ot.object_type(+)
11 окт. 2010 г.
Типовые запросы к реляционным таблицам Planning
Данные запросы создавались для версии 11.1.1.3 на БД Oracle 10g
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий