SQL*Plus 模拟 EBS环境

在EBS中,很多SQL运行结果和SQL*Plus中运行结果完全不同,这主要是由于一系列的环境变量所致。一些可能影响SQL执行结果的因素有:

  • 配置文件
  • NSL_LANG设置
  • 库存组织(R12中是MOAC,多组织访问控制)
  • HRMS安全配置
  • 基于Date-Track(时间跟踪)的SQL,一般是在HRMS中
  • RLS (Row-Level Security)

下面是一系列模拟EBS环境的方法:

模拟库存组织

fnd_client_info.set_org_context();

或者:

dbms_application_info.set_client_info();

模拟EBS登陆环境

DECLARE
BEGIN
    fnd_global.apps_initialize(user_id           => < user_id >,
                               resp_id           => < resp_id >,
                               resp_appl_id      => < resp_appl_id >,
                               security_group_id => < fnd security GROUP id >,
                               server_id         => );
END;

模拟语言环境

DECLARE
BEGIN
    fnd_global.set_nls_context(p_nls_language => 'AMERICAN');
END;

模拟Date-Track

INSERT INTO fnd_sessions
    (session_id, effective_date)
    (SELECT userenv('SESSIONID'),
            SYSDATE
       FROM dual
      WHERE NOT EXISTS (SELECT 'C'
               FROM fnd_sessions s1
              WHERE userenv('SESSIONID') = s1.session_id));

模拟HRMS安全配置

DECLARE
BEGIN
    hr_signon.initialize_hr_security;
END;

至于RLS或者CLS(Cell-Level Security),另行参考数据库安全相关内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值