Приложения Oracle - Как получить значение zd_edition_name
В Oracle Applications 12c release 1 есть новый столбец, который является частью многих первичных ключей, который называется zd_edition_name
, Это относится к редакциям, которые вы можете использовать для поддержания базы данных во время изменений. Таким образом, у вас будет два издания, вы можете вносить изменения в неживое, а затем просто менять местами, когда вы закончите (мое ограниченное понимание - я не dba).
Мои вопросы, как я могу получить значение zd_edition_name,
так как теперь это часть первичного ключа, а также потому, что таблицы, такие как fnd_descr_flex_col_usage_tl
вернет две строки вместо одной, если вы не передадите значение zd_edition_name
,
Кроме того, что означает ZD?
1 ответ
Переопределение базовой версии 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
С редактируемым представлением и таблицей у нас нет этого ограничения:
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 можно было идентифицировать активную файловую систему, которая должна иметь соответствие с SET1/SET2, выполнив вход на сервер (ы) Oracle Apps и повторив переменные среды:
$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
Для среды EBS 12.1 я бы ожидал, что единственной версией будет ORA$BASE.