Oracle EBS R12 - 一段Oracle EBS中给指定用户增加指定职责的PLSQL脚本

针对Oracle EBS R12系统,当需要为多个用户分配职责时,手动操作繁琐。这篇博客提供了一段PLSQL脚本,旨在简化DBA为指定用户批量添加职责的过程。脚本分别适用于Oracle 10g和11g,由于10g不支持continue语句,故进行了区分处理。
摘要由CSDN通过智能技术生成

在一些比较注重权限的EBS项目中, 普通用户通常没有System Administrator权限, 只能由DBA给一个一个用户一个一个职责加, 纯手工的话很麻烦, 于是写了一段PLSQL脚本, 留着备用. 由于Oracle 10g尚不支持continue语句, 因此10g和11g分开写了.


1. Based on EBS R12.0.6/Oracle DB 10gR2

DECLARE
   -- script to add user responsibility for R12.0/10gR2

   TYPE tab_user_list IS TABLE OF VARCHAR2 (100);
   TYPE arr_resp_list IS VARRAY (100) OF VARCHAR2 (100);

   -- user to be changed
   l_tab_user_list tab_user_list
                     := tab_user_list ('LIAO'
                                      ,'KARL'
                                      ,'xx');

   -- responsibility to be added
   l_arr_resp_list arr_resp_list
                     := arr_resp_list ('system Administrator'
                                      ,'Purchasing Super User'
                                      ,'Application Administrator');

   CURSOR cur_user (
      pc_username IN VARCHAR2)
   IS
      SELECT fu.user_id
            ,fu.user_name
      FROM   fnd_user fu
      WHERE  fu.user_name = pc_username
             AND TRUNC (SYSDATE) BETWEEN TRUNC (NVL (fu.start_date, SYSDATE))
                                     AND TRUNC (NVL (fu.end_date, SYSDATE));
   TYPE tab_user IS TABLE OF cur_user%ROWTYPE;
   l_tab_user     tab_user;

   CURSOR cur_resp (
      pc_resp IN VARCHAR2)
   IS
      SELECT fa.application_id
            ,fa.application_short_name
            ,fr.responsibility_id
            ,fr.responsibility_name
            ,fr.responsibility_key
            ,fsg.security_group_key
      FROM   fnd_application fa
            ,fnd_responsibility_vl fr
            ,fnd_security_groups fsg
      WHERE      LOWER (fr.responsibility_name) = LOWER (pc_resp)
             AND fa.application_id = fr.application_id
             AND fr.data_group_id = fsg.security_group_id;
   TYPE tab_resp IS TABLE OF cur_resp%ROWTYPE;
   l_tab_resp     tab_resp;

   expt_no_user   EXCEPTION;
   expt_no_resp   EXCEPTION;
   l_expt_msg     VARCHAR2 (2000);
BEGIN
   --l_tab_user_list := tab_user_list ();
   IF (l_tab_user_list.COUNT = 0)
   T
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值