Oracle 应用程序 - 如何获取 zd_edition_name 的值

Oracle Applications - How to get the value of zd_edition_name

在 Oracle Applications 12c 第 1 版中,有一个新列构成了许多主键的一部分,称为 zd_edition_name。这与您在更改期间保持数据库可用的版本有关。因此,您将有两个版本,您可以对非实时版本进行更改,然后在完成后进行实时交换(我的理解有限——我不是 dba)。

我的问题是如何获取 zd_edition_name, 的值,因为它现在是主键的一部分,而且如果您不这样做,像 fnd_descr_flex_col_usage_tl 这样的表会返回两行而不是一行'传递 zd_edition_name 的值。

还有 zd 代表什么?

EBS 和版本基础重定义和在线补丁

列 zd_edition_name 只是 Oracle 11G 2(或更高版本)数据库的基于版本的重新定义功能的一个组成部分。

Oracle 应用程序直到 12.2 EBS 才利用此基于版本的重新定义数据库功能。

应用程序拥有的同义词将显示 运行 时间值,SET1 或 SET2。这将是一个值。对于 EBS 12.1,我希望 运行 时间值为 SET1.

APPS@db>    select
  2      zd_edition_name
  3      from
  4      fnd_descr_flex_col_usage_tl
  5      group by   zd_edition_name;
ZD_EDITION_NAME
SET1

有了可编辑视图和 table,我们就没有那个限制了:

APPS@db>SELECT
  2      zd_edition_name
  3  FROM
  4      applsys.fnd_descr_flex_col_usage_tl
  5  GROUP BY
  6      zd_edition_name;
ZD_EDITION_NAME
SET2
SET1

在 EBS 12.2 中,可以通过登录到 Oracle Apps 服务器并回显环境变量来识别应与 SET1/SET2 对应的活动文件系统:

$FILE_EDITION = patch

$RUN_BASE = /u01/R122_EBS/fs1

$PATCH_BASE = /u01/R122_EBS/fs2

通过查询apps owned synonym,不需要知道ZD_EDITION_NAME的值(它是与运行版本关联的值,将是该值) .


您可以使用如下查询查看与 table 关联的可编辑对象:

APPS@db>VAR b_object_name varchar2(30);
APPS@db>EXEC :b_object_name:= 'FND_DESCR_FLEX_COL_USAGE_TL';

PL/SQL procedure successfully completed.

APPS@db>SELECT
  2      ao.owner,
  3      ao.object_name,
  4      ao.object_type
  5  FROM
  6      all_objects ao
  7  WHERE
  8      1 = 1
  9      AND   owner IN (
 10          'APPS',
 11          'APPLSYS'
 12      )
 13      AND   ao.object_name IN (
 14          :b_object_name,
 15          substr(:b_object_name,1,29)
 16          || '#'
 17      );
OWNER     OBJECT_NAME                    OBJECT_TYPE   
APPLSYS   FND_DESCR_FLEX_COL_USAGE_TL    TABLE         
APPLSYS   FND_DESCR_FLEX_COL_USAGE_TL#   VIEW          
APPS      FND_DESCR_FLEX_COL_USAGE_TL    SYNONYM       

以下是 EBS 实例中存在的版本列表:

APPS@db>SELECT
  2      level,
  3      de.edition_name,
  4      de.parent_edition_name
  5  FROM
  6      dba_editions de
  7  START WITH
  8      de.edition_name = 'ORA$BASE'
  9  CONNECT BY
 10      PRIOR de.edition_name = de.parent_edition_name
 11  ORDER BY
 12      de.edition_name;
  LEVEL EDITION_NAME      PARENT_EDITION_NAME
      1 ORA$BASE
      2 V_20160703_2120   ORA$BASE
      3 V_20160708_1723   V_20160703_2120
    ...
     29 V_20180117_1118   V_20171206_1115
     30 V_20180130_0107   V_20180117_1118

对于 12.1 EBS 环境,我希望起始版本 ORA$BASE 是唯一的版本。