mm111222 发表于 2015-9-22 13:55:51

Oracle EBS中查询Profile的各种SQL

1.List E-Business Suite Profile Option Values For All Levels
  SELECT p.profile_option_name SHORT_NAME,
       n.user_profile_option_name NAME,
       decode(v.level_id,
            10001,
            'Site',
            10002,
            'Application',
            10003,
            'Responsibility',
            10004,
            'User',
            10005,
            'Server',
            10006,
            'Org',
            10007,
            decode(to_char(v.level_value2),
                     '-1',
                     'Responsibility',
                     decode(to_char(v.level_value), '-1', 'Server', 'Server+Resp')),
            'UnDef') LEVEL_SET,
       decode(to_char(v.level_id),
            '10001',
            '',
            '10002',
            app.application_short_name,
            '10003',
            rsp.responsibility_key,
            '10004',
            usr.user_name,
            '10005',
            svr.node_name,
            '10006',
            org.name,
            '10007',
            decode(to_char(v.level_value2),
                     '-1',
                     rsp.responsibility_key,
                     decode(to_char(v.level_value),
                            '-1',
                            (SELECT node_name
                               FROM fnd_nodes
                              WHERE node_id = v.level_value2),
                            (SELECT node_name
                               FROM fnd_nodes
                              WHERE node_id = v.level_value2) || '-' ||
                            rsp.responsibility_key)),
            'UnDef') "CONTEXT",
       v.profile_option_value VALUE
FROM fnd_profile_options       p,
       fnd_profile_option_values v,
       fnd_profile_options_tl    n,
       fnd_user                  usr,
       fnd_application         app,
       fnd_responsibility      rsp,
       fnd_nodes               svr,
       hr_operating_units      org
WHERE p.profile_option_id = v.profile_option_id(+)
   AND p.profile_option_name = n.profile_option_name
   AND upper(p.profile_option_name) IN
       (SELECT profile_option_name
          FROM fnd_profile_options_tl
         WHERE upper(user_profile_option_name) LIKE
               upper('%&user_profile_name%'))
   AND usr.user_id(+) = v.level_value
   AND rsp.application_id(+) = v.level_value_application_id
   AND rsp.responsibility_id(+) = v.level_value
   AND app.application_id(+) = v.level_value
   AND svr.node_id(+) = v.level_value
   AND org.organization_id(+) = v.level_value
ORDER BY short_name,
          user_profile_option_name,
          level_id,
          level_set;
2.How to Search all of the Profile Options for a Specific Value
  SELECT p.profile_option_name profile_option_name,
       n.user_profile_option_name user_profile_option_name,
       DECODE(v.level_id,
            10001,
            'Site',
            10002,
            'Application',
            10003,
            'Responsibility',
            10004,
            'User',
            10005,
            'Server',
            'UnDef') LEVEL_SET,
       DECODE(TO_CHAR(v.level_id),
            '10001',
            '',
            '10002',
            app.application_short_name,
            '10003',
            rsp.responsibility_key,
            '10005',
            svr.node_name,
            '10006',
            org.name,
            '10004',
            usr.user_name,
            'UnDef') "CONTEXT",
       v.profile_option_value VALUE
FROM fnd_profile_options       p,
       fnd_profile_option_values v,
       fnd_profile_options_tl    n,
       fnd_user                  usr,
       fnd_application         app,
       fnd_responsibility      rsp,
       fnd_nodes               svr,
       hr_operating_units      org
WHERE p.profile_option_id = v.profile_option_id(+)
   AND p.profile_option_name = n.profile_option_name
   AND usr.user_id(+) = v.level_value
   AND rsp.application_id(+) = v.level_value_application_id
   AND rsp.responsibility_id(+) = v.level_value
   AND app.application_id(+) = v.level_value
   AND svr.node_id(+) = v.level_value
   AND org.organization_id(+) = v.level_value
   AND v.PROFILE_OPTION_VALUE LIKE '%'
ORDER BY level_set;
3.How To Find All Users With A Particular Profile Option Set?
  SELECT p.profile_option_name SHORT_NAME,
       n.user_profile_option_name NAME,
       decode(v.level_id,
            10001,
            'Site',
            10002,
            'Application',
            10003,
            'Responsibility',
            10004,
            'User',
            10005,
            'Server',
            'UnDef') LEVEL_SET,
       decode(to_char(v.level_id),
            '10001',
            '',
            '10002',
            app.application_short_name,
            '10003',
            rsp.responsibility_key,
            '10005',
            svr.node_name,
            '10006',
            org.name,
            '10004',
            usr.user_name,
            'UnDef') "CONTEXT",
       v.profile_option_value VALUE
FROM fnd_profile_options       p,
       fnd_profile_option_values v,
       fnd_profile_options_tl    n,
       fnd_user                  usr,
       fnd_application         app,
       fnd_responsibility      rsp,
       fnd_nodes               svr,
       hr_operating_units      org
WHERE p.profile_option_id = v.profile_option_id(+)
   AND p.profile_option_name = n.profile_option_name
   AND usr.user_id(+) = v.level_value
   AND rsp.application_id(+) = v.level_value_application_id
   AND rsp.responsibility_id(+) = v.level_value
   AND app.application_id(+) = v.level_value
   AND svr.node_id(+) = v.level_value
   AND org.organization_id(+) = v.level_value
   AND Upper(n.user_profile_option_name) LIKE upper('INV:Debug Level')
ORDER BY short_name;

where you will prompt for the User_Profile_Option_Name you want to check and you will put the
Profile name that you want to check, for example: Apps Servlet Agent

If you want to check on the users level then you can append a condition : and v.level_id = 10004,
same goes for Responsibility level then append the condition v.level_id = 10003.

If you want for a certain user, then you can append a condition: and usr.user_name = '&User_Name'
where you will prompt for the User_Name and then you will put the user you want to check, for
example: SYSADMIN
页: [1]
查看完整版本: Oracle EBS中查询Profile的各种SQL