首页  ·  知识 ·  生产制造
SQL*Plus模拟EBS环境
网友   http://www.orafans.org/category/ebs    编辑:德仔   图片来源:网络
在EBS中,很多SQL运行结果和SQL*Plus中运行结果完全不同,这主要是由于一系列的环境变量所致。一些可能影响SQL执行结果的因素有:/p

在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),另行参考数据库安全相关内容。

本文作者:网友 来源: http://www.orafans.org/category/ebs
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读