1

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

我的问题是如何获得 的值,zd_edition_name,因为它现在是主键的一部分,而且fnd_descr_flex_col_usage_tl如果你不传递zd_edition_name.

还有zd代表什么?

4

1 回答 1

2

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

正如您所指出的,zd_edition_name 列只是 Oracle 11G 2(或更高版本)数据库的基于版本的重新定义功能的一个组件。

Oracle Applications 直到 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

使用可编辑视图和表格,我们没有这个限制:

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

通过查询应用程序拥有的同义词,无需知道 ZD_EDITION_NAME 的值(它是与运行版本相关联的值,将是该值)。


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

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 是唯一的版本。

于 2018-02-11T09:08:42.673 回答