ヘッダーをスキップ

Oracle E-Business Suite開発者ガイド
リリース12.2
E53035-01
目次へ
目次
前のページへ
前へ
次のページへ
次へ

オンライン・パッチ適用のためのデータベース・オブジェクト開発標準

はじめに

この章では、Oracle E-Business Suiteリリース12.2のデータベース・オブジェクト開発およびオンライン・パッチ適用に関する新しい標準または変更された標準について説明します。その他の開発標準については記載していません。

注意: これらの標準は、アプリケーション開発者が直接管理できるオブジェクトおよびデータにのみ適用されます。データベースでは、内部/非表示の表、索引、タイプおよびその他のオブジェクトが生成される場合があります。開発標準は、これらの生成オブジェクトには適用されません。

注意: これらの標準の明示的なスキーマ名に対する参照(例: APPS)は、概念として考える必要があり、実際のスキーマ名とはかぎりません。スキーマ名は、インストール時にスキーマに対して異なる名前が選択される場合があるため、ソフトウェア・コードには組み込まないでください。このルールの唯一の例外はAPPS_NEスキーマであり、この名前はすべてのインストールで使用されることが保証されています。関連項目: APPS_NE以外のOracle E-Business Suiteデータベース・ユーザーに対するエディショニングの有効化

この章の各項は、オブジェクト・タイプごとに編成されています。各オブジェクト・タイプごとに、次のタイプの標準が提供されます。

定義の標準

これらは、オブジェクトの定義に関して従う必要があるルールです。これらのルールは、Oracle E-Business Suiteリリース12.2の基本リリース内のすべてのオブジェクトに適用されます。

使用方法の標準

これらは、アプリケーション実行時にオブジェクトを使用する際に従う必要があるルールです。

動的DDLの標準

これらは、アプリケーション実行時にオブジェクト定義を生成または変更する際に従う必要があるルールです。

オンライン・パッチ適用準拠の標準

これらは、カスタム・オブジェクトまたはパッチで従う必要があるルールです。Oracle E-Business Suiteの開発者は、オンライン・パッチでオブジェクト定義を配信する際にもこれらの標準に従う必要があります。これらのルールは、Oracle E-Business Suiteリリース12.2上のすべてのカスタマイズ、パッチおよびアップグレードに適用されます。これらのルールは、Oracle E-Business Suiteリリース12.2のアップグレード自体を構成するパッチには適用されません。

オンライン・パッチ適用データベース準拠チェッカ・レポート

このユーティリティでは、データベース・オブジェクトについて、オンライン・パッチ適用開発標準に対するすべての違反がレポートされます。カスタム・コードの一部である、このレポートにリストされたオブジェクトを修正する必要があります。違反を修正しない場合は、このレポートにリストされたオブジェクトにパッチを適用するために、オンライン・パッチ適用インフラストラクチャを使用することはできません。

次のコマンドを使用してオンライン・パッチ適用データベース準拠チェッカを実行して、オンライン・パッチ適用データベース標準の違反をチェックしてください。

sqlplus <APPS username> @$AD_TOP/sql/ADZDDBCC.sql

オンライン・パッチ適用の要件

オンライン・パッチ適用の2つの主要な要件は、2つの簡単なルールで記述できます。

オンライン・パッチ適用の基本は、Oracle Database 11gR2のエディションベースの再定義(EBR)と呼ばれる機能です。これは、Oracle E-Business Suiteインストールで、単一システム上でアプリケーションの2つのエディション(バージョン)がサポートされることを意味します。アプリケーションは、実行エディションと呼ばれるファイルとデータベース・オブジェクトのセット上で実行されます。オンライン・パッチは、パッチ・エディションと呼ばれる実行エディションのコピーに適用されます。データベース表、索引およびその他の非エディション化オブジェクトは、両方のエディションで共有されます。

オンライン・パッチ適用の要件には、次の一般的な開発標準が含まれています。

残りの開発標準では、データベース・オブジェクトの各タイプに対して、前述の基準を確実に満たすために役立つ指示を提供します。

エディション化オブジェクト

エディション化オブジェクトの定義は、各データベース・エディションで異なる場合があります。これは、このようなオブジェクトに対しては、(実行エディションで)実行中のアプリケーションに影響を与えずに(パッチ・エディションで)パッチを簡単に適用できることを意味します。

ビュー(通常)

ビューは、1つ以上の表の論理表現です。これは、そのデータをその元となる表から導出する格納済の問合せと考えることができます。ビューの詳細は、『Oracle Database管理者ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

使用方法の標準

結合ビューの暗黙的なROWID疑似列は参照しないでください。結合ビューの暗黙的ROWIDの使用可能性は、警告なしに変更される場合があります。かわりに、すべての結合ビューに存在する必要がある明示的なROW_ID列を使用してください。

動的DDLの標準

パッチ・エディションが存在する間に、実行中のアプリケーションでビューが作成、置換または削除された場合は、同じ処理をパッチ・エディションで実行する必要があります。この要件は、次の2つのいずれかの方法で満たすことができます。

  1. 実行エディションの動的DDLをパッチ・エディションに複製します。

    ビューに対する実行エディションのDDLをパッチ・エディションに自動的に複製する、AD_DDLを使用します。

    例:

    /* Code example:  Create a view using AD_DDL */
    declare
    L_APP   varchar2(8);
    L_NAME  varchar2(30);
    L_STMT  varchar2(32000);
    begin
    l_app  := 'FND';
    l_name := 'FND_EXAMPLE_V';
    l_stmt := 
    'create or replace view '||l_name||' as '||
    'select user_id, user_name from fnd_user '||
    'where user_id < 10000';
    ad_ddl.do_ddl(
    ad_zd.applsys_schema,  -- applsys schema name
    l_app,                 -- application short name for your product 
    ad_ddl.create_view,    -- statement type
    l_stmt,                -- statement text
    l_name                 -- view name
    );  
    end;
    / 
    
  2. オンライン・パッチ適用中に動的DDLを実行するアプリケーション処理を、無効化またはブロックします。

    この方法は、通常の顧客操作を中断せずに、依存機能を数日間続けて使用不可にできる場合にのみ使用できます。

    この方法は、一時的な回避策としてのみ考えてください。

    関連項目:

オンライン・パッチ適用準拠の標準

CTXSYS、SYSTEM、SYSまたはPUBLICなど、非エディション化データベース・スキーマにビューをインストールしないでください。

PL/SQLパッケージ

PL/SQLパッケージの詳細は、『Oracle Database PL/SQL言語リファレンス 11g リリース2 (11.2)』を参照してください。

定義の標準

パッケージ名は、引用符で囲まれていない識別子である必要があります。

注意: 引用符で囲まれていない識別子では、A-Z、0-9、_、#、$の文字のみを使用できます。引用符で囲まれている識別子は、テクノロジ・コンポーネントで使用するために予約されています。

使用方法の標準

特別な考慮事項はありません。

動的DDLの標準

パッチ・エディションが存在する間に、実行中のアプリケーションでPL/SQLが作成、置換または削除された場合は、同じ処理をパッチ・エディションで実行する必要があります。この要件は、次の2つのいずれかの方法で満たすことができます。

  1. 実行エディションの動的DDLをパッチ・エディションに複製します。

    PL/SQLに対する実行エディションのDDLをパッチ・エディションに自動的に複製する、AD_DDLを使用します。

    例:

    -- Example of using AD_DDL to create a PL/SQL package
    DECLARE
    l_applsys_schema varchar2(30);
    BEGIN
    -- Get applsys schema name
    SELECT user
    INTO l_applsys_schema
    FROM dual;
    -- Build and create Package Spec 
    ad_ddl.build_package('create package FND_GB_TEST as', 1);
    ad_ddl.build_package('  procedure test;', 2);
    ad_ddl.build_package('end;', 3);
    ad_ddl.create_package(l_applsys_schema, 'FND', 'FND_GB_TEST', 'FALSE', 1, 3);
    -- Build and create Package Body 
    ad_ddl.build_package('create package body FND_GB_TEST as', 1);
    ad_ddl.build_package('  procedure test is', 2);
    ad_ddl.build_package('  begin null; end;', 3);
    ad_ddl.build_package('end;', 4);
    ad_ddl.create_package(l_applsys_schema, 'FND', 'FND_GB_TEST', 'TRUE', 1, 4);
    END;
    /
    
  2. オンライン・パッチ適用中に動的DDLを実行するアプリケーション処理を、無効化またはブロックします。

    この方法は、通常の顧客操作を中断せずに、依存機能を数日間続けて使用不可にできる場合にのみ使用できます。

    この方法は、一時的な回避策としてのみ考えてください。

    関連項目:

オンライン・パッチ適用準拠の標準

CTXSYS、SYSTEM、SYSまたはPUBLICなど、非エディション化スキーマにPL/SQLをインストールしないでください。

ユーザー定義タイプ(エディション化)

タイプの詳細は、『Oracle Database PL/SQL言語リファレンス 11g リリース2 (11.2)』を参照してください。

定義の標準

特別な考慮事項はありません。

使用方法の標準

エディション化ユーザー定義タイプは、列タイプまたはアドバンスト・キュー(AQ)ペイロード・タイプとして使用できません。

動的DDLの標準

PL/SQLパッケージと同様です。

オンライン・パッチ適用準拠の標準

PL/SQLパッケージと同様です。

PL/SQLトリガー

PL/SQLトリガーの詳細は、『Oracle Database PL/SQL言語リファレンス 11g リリース2 (11.2)』を参照してください。

定義の標準

動的DDLの標準

パッチ・エディションが存在する間に、ランタイム・アプリケーションでトリガーが作成、置換または削除された場合は、同じ処理をパッチ・エディションで実行する必要があります。この要件は、次の2つのいずれかの方法で満たすことができます。

  1. 実行エディションの動的DDLをパッチ・エディションに複製します。

    トリガーに対する実行エディションのDDLをパッチ・エディションに自動的に複製する、AD_DDLを使用します。

    例:

    /* Code example:  Create a trigger using AD_DDL */
    
    declare
      L_APP   varchar2(8);
      L_NAME  varchar2(30);
      L_STMT  varchar2(32000);
    begin
      l_app  := 'FND';
      l_name := 'FND_EXAMPLE_TRG';
      l_stmt :=
        'create or replace trigger '||l_name||' '||
        'before insert or update on fnd_user for each row '||
        'begin '||
        '  ad_zd_log.message(''test'', ''STATEMENT'', ''hello!''); '||
        'end;';
    
      ad_ddl.do_ddl(
        ad_zd.applsys_schema,  -- applsys schema name
        l_app,                 -- application short name for your product 
        ad_ddl.create_trigger, -- statement type
        l_stmt,                -- statement text
        l_name                 -- trigger name
      );
    end;
    /
    
    
  2. オンライン・パッチ適用中に動的DDLを実行するアプリケーション処理を、無効化またはブロックします。この方法は、通常の顧客操作を中断せずに、依存機能を数日間続けて使用不可にできる場合にのみ使用できます。

    この方法は、一時的な回避策としてのみ考えてください。

    関連項目:

オンライン・パッチ適用準拠の標準

CTXSYS、SYSTEM、SYSまたはPUBLICなど、非エディション化スキーマにトリガーをインストールしないでください。

シノニム

シノニムの管理の詳細は、『Oracle Database管理者ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

使用方法の標準

APPSシノニムを使用して、Oracle E-Business Suiteの表を参照します。表を直接参照しないでください。

動的DDLの標準

パッチ・エディションが存在する間に、実行中のアプリケーションでシノニムが作成、置換または削除された場合は、同じ処理をパッチ・エディションで実行する必要があります。この要件は、次の2つのいずれかの方法で満たすことができます。

  1. 実行エディションの動的DDLをパッチ・エディションに複製します。

    シノニムに対する実行エディションのDDLをパッチ・エディションに自動的に複製する、AD_DDLを使用します。

    例:

    /* Code example:  Create a synonym using AD_DDL */
    
    declare
      L_APP   varchar2(8);
      L_NAME  varchar2(30);
      L_STMT  varchar2(32000);
    begin
      l_app  := 'FND';
      l_name := 'FND_USERS';
      l_stmt :=
        'create or replace synonym '||l_name||' for fnd_user';
    
      ad_ddl.do_ddl(
        ad_zd.applsys_schema,  -- applsys schema name
        l_app,                 -- application short name for your product 
        ad_ddl.create_synonym, -- statement type
        l_stmt,                -- statement text
        l_name                 -- view name
      );
    end;
    /
    
  2. オンライン・パッチ適用中に動的DDLを実行するアプリケーション処理を、無効化またはブロックします。

    この方法は、通常の操作を中断せずに、依存機能を数日間続けて使用不可にできる場合にのみ使用できます。

    この方法は、一時的な回避策としてのみ考えてください。

    関連項目:

オンライン・パッチ適用準拠の標準

CTXSYS、SYSTEM、SYSまたはPUBLICなど、非エディション化スキーマにシノニムをインストールしないでください。

仮想プライベート・データベース(VPD)ポリシー

Oracle Virtual Private Databaseの詳細は、『Oracle Databaseセキュリティ・ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

VPDポリシーは、表上ではなくエディショニング・ビューまたは表シノニム上にある必要があります。

表上のVPDポリシーは、リリース12.2のアップグレード時に、対応するエディショニング・ビューに自動的に移動されます。

動的DDLの標準

特別な考慮事項はありません。

オンライン・パッチ適用準拠の標準

ヒント: VPDポリシーを追加または削除するには、SQLスクリプトからFND_ACCESS_CONTROL_UTILパッケージをコールします(&phase=plb)。

実質的エディション化オブジェクト

これらのオブジェクト・タイプは、データベース・レベルでは非エディション化であり、これはすべてのデータベース・エディションに表示される単一の定義があることを意味します。しかし、このカテゴリ内の各オブジェクトに対しては、実行中のアプリケーションに影響を与えずにオブジェクトにパッチを適用できるように、オンライン・パッチ適用ツールによって特別なサポートが実装されます。新しい制限および標準が各実質的エディション化オブジェクト・タイプに適用されます。

表(通常)

通常の表は、アプリケーション・パッチ適用時に作成、変更または削除されます。これに対して、動的表は、実行時にアプリケーションによって作成、変更または削除されます。この項の標準は、通常の表にのみ適用されます。

通常の表に対して実質的エディション化サポートを実装するために、オンライン・パッチ適用テクノロジによって、各表に新しいエディショニング・ビュー層がインストールされて保守されます。エディショニング・ビューでは、アプリケーションで使用される論理列名が、各エディションでそれらの属性の格納に使用される実際の格納列にマップされます。エディショニング・ビューはオンライン・パッチ適用時に自動的に保守されますが、開発データベースで表を手作業で作成または変更する開発者は、エディショニング・ビューを保守するための新しい手順に従う必要があります。

注意: これらの標準の一部について、グローバル標準準拠チェッカ(GSCC)スクリプトの出力に対応するコードが提供されています。コードの例はGSCC File.Gen.34です。このスクリプトの詳細は、「グローバル標準準拠チェッカ (GSCC)の出力」を参照してください。

表の管理に関するガイドラインの詳細は、『Oracle Database管理者ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

使用方法の標準

動的DDLの標準

オンライン・パッチ適用準拠の標準

シード・データ表

シード・データ表には、ランタイム・アプリケーション機能の制御に使用され、そのためにOracle E-Business Suite Developmentによるパッチ適用の対象となるデータが含まれています。シード・データのオンライン・パッチ適用を可能にするには、すべてのシード・データ表で新しいエディション化データ格納アーキテクチャが実装される必要があります。これには、表への新しいエディションのストライプ化列の追加、および各エディションにおける正しいデータ・ストライプのフィルタが含まれています。

定義の標準

使用方法の標準

動的DDLの標準

適用はありません。

オンライン・パッチ適用準拠の標準

シード・データ・ローダー

次の標準がシード・データ・ローダーに適用されます。

定義の標準

使用方法の標準

特別な考慮事項はありません。

動的DDLの標準

適用はありません。

オンライン・パッチ適用準拠の標準

適用はありません。

索引

索引の詳細は、『Oracle Database概要 11g リリース2 (11.2)』を参照してください。

定義の標準

動的DDLの標準

CREATE INDEX ... ON ...文では、APPS表シノニムではなく、完全修飾表名を指定する必要があります。

オンライン・パッチ適用準拠の標準

整合性制約

整合性制約の詳細は、『Oracle Database概要 11g リリース2 (11.2)』を参照してください。

定義の標準

動的DDLの標準

シード・データ表に対して一意の制約を動的に作成する場合は、制約にZD_EDITION_NAME列が含まれている必要があります。

オンライン・パッチ適用準拠の標準

マテリアライズド・ビュー(MV)

マテリアライズド・ビューは、非エディション化オブジェクト・タイプであるため、エディション化オブジェクトを直接参照できません。この制限を回避するために、Oracle E-Business Suiteのオンライン・パッチ適用テクノロジでは、新しい実質的エディション化マテリアライズド・ビュー複合オブジェクトが実装されます。アプリケーション開発者は、通常のビューでマテリアライズド・ビュー定義(問合せ)を作成および保守します。オンライン・パッチ適用テクノロジによって、エディション化データベースに適正である、対応するマテリアライズド・ビューの実装が自動的に保守されます。

マテリアライズド・ビューの詳細は、『Oracle Database概要 11g リリース2 (11.2)』を参照してください。

定義の標準

定義の標準:

使用方法の標準

高速リフレッシュが常に可能であると想定しないでください。オンライン・パッチ後、完全リフレッシュが必要な場合があります。マテリアライズド・ビューをリフレッシュする場合は、FASTではなくFORCE句を使用します。

FORCEオプションの詳細は、『Oracle Database SQL言語リファレンス 11g リリース2 (11.2)』を参照してください。

動的DDLの標準

マテリアライズド・ビューに対して動的DDLを実行するにはAD_MVを使用します。次に、AD_MVパッケージを使用したマテリアライズド・ビューの作成例を示します。

--
-- Code Example:  Create a materialized view using AD_MV interface. 
-- 
-- Note: 
--    when executed in the Run Edition, the MV is created immediately.
--    when executed in the Patch Edition, the MV is generated at CUTOVER.
--


begin

  -- Create MV
  ad_mv.create_mv('FND_EXAMPLE_MV',
    'create materialized view FND_EXAMPLE_MV '||
    '  tablespace '||ad_mv.g_mv_data_tablespace||' '||
    '  build deferred refresh on demand as '||
    'select /*AUTOREFRESH*/ '||
    '    upper(oracle_username) USERNAME '||
    '  , decode(read_only_flag,''C'',''pub'',''E'',''applsys'',''U'',''apps'') USERTYPE '||
    'from  fnd_oracle_userid '||
    'where read_only_flag in (''C'',''E'',''U'') ');

 end;

オンライン・パッチ適用準拠の標準

論理表列と物理表列

Oracle E-Business Suiteリリース12.2では、オンライン・パッチ適用アーキテクチャによって、開発者管理表に新しいエディショニング・ビュー(EV)層が導入されます。EV層では、オンライン・パッチ適用で物理格納列の名前が変更された場合でも、表情報の固定論理ビューがアプリケーションに提供されます。EVでは、各論理列名が、その属性に対する最新の改訂格納列にマップされます。ランタイム・アプリケーションは、この論理ビューを介して表データにアクセスする必要があります。

実質的エディション化表には、オンライン・パッチ適用技術を使用してパッチが適用され、このために、物理格納列名が時間経過とともに論理列名と異なるようになります。この論理列名と物理列名のマッピングは、通常の問合せおよびDML文の場合はアプリケーションに透過的ですが、アプリケーションでデータベース・データ・ディクショナリ・ビューを問い合せる場合には、名前を取得する目的に応じて、正しい(論理または物理)列名を選択するよう注意する必要があります。

論理列と物理列の相違点は、表にエディショニング・ビューがある表の列に対してのみ存在します。エディショニング・ビューがないオブジェクトの列情報を取得している場合は、変更を加える必要はありません。変更する必要のない問合せは、次のとおりです。

列を含むデータベース・データ・ディクショナリ・ビュー

混合使用ディクショナリ・ビュー

このカテゴリのディクショナリ・ビューには、ビューの問合せ方法に応じて論理表列と物理表列の両方の情報が含まれます。これらのディクショナリ・ビューに対する各参照を検査し、論理列または物理列の情報を選択の対象とするかどうかを決定する必要があります。

物理(表)列名を選択するには、特定の物理表名に対するディクショナリ・ビューから選択します(where table_name = x_table_name)。where table_name not like '%#を使用すると、論理ビュー以外のすべての表を検索できます。

論理(EV)列名を選択するには、特定のエディショニング・ビュー名に対するディクショナリ・ビューから選択します(where table_name = ad_zd_table.ev_view(x_table_name))。論理ビューの情報を取得する別の方法は、APPSシノニムから開始し、シノニムのtable_nameをディクショナリ・ビューに結合して正しい論理ビュー情報を取得することです。APPSシノニムは、EVが存在する場合はEVを指し、EVが存在しない場合は物理表を直接指します。いずれの場合も、正しい論理列の結果が提供されます。

/*
** This query returns logical columns for the table pointed to by APPS
** table synonym X_SYNONYM_NAME.  Compatible with old releases.
*/
select col.column_name
from  user_synonyms syn, all_tab_columns col
where syn.synonym_name = x_synonym_name
  and col.owner      =  syn.table_owner
  and col.table_name = syn.table_name
order by col.column_id
/

表を問い合せているかビューを問い合せているかわからない場合は、2つの考えられる問合せの結果を結合できます。

/*
** This query returns logical columns for X_OBJECT_NAME, and works whether
** the object is an APPS table synonym or view.  Compatible with old releases. 
*/
select col.column_name, col.data_type
from  user_synonyms syn, all_tab_columns col
where syn.synonym_name = x_object_name
  and col.owner      = syn.table_owner
  and col.table_name = syn.table_name
union
select col.column_name, col.data_type
from  user_tab_columns col
where col.table_name = x_object_name
/

アプリケーション・ロジックで、入力としてAPPSオブジェクト名ではなく物理表名を使用する必要があり、表にエディショニング・ビューがあることが確実な場合は、ユーティリティ機能を使用して、表名を単にエディショニング・ビュー名に変換できます。

*
** This query returns logical columns for effectively editioned table
** X_OWNER.X_TABLE_NAME.  Use this only if you cannot start from
** the APPS synonym name and are sure that the table has an EV.
** This query works on EBS 12.2 only. 
*/
select col.column_name
from  all_tab_columns col
where col.owner      = x_owner
  and col.table_name = ad_zd_table.ev_view(x_table_name)
order by col.column_id
/

ほとんどの一般的な(最悪の)ケースでは、アプリケーション・コードで、入力表名にEVがあることを保証できない場合があります。この場合、EV情報に外部結合して、論理列名が存在する場合は論理列名を提供し、論理列名が存在しない場合は物理列を提供できます。

/*
** This query returns the logical columns for table X_OWNER.X_TABLE_NAME.
** If the table has an editioning view, then the editioning view columns are
** returned, otherwise the physical table columns are returned.
** ONLY use this query if you must query by physical table name rather
** than APPS synonym name and the table might not have an EV.
** This query works on Release 12.2 only. 
*/
select
    col.owner
  , col.table_name
  , decode(ev.view_name, NULL, col.column_name, evc.view_column_name) logical_column_name
  , col.column_name physical_column_name
from
    all_tab_columns col
  , all_editioning_views ev
  , all_editioning_view_cols evc
where col.owner        =   x_owner
  and col.table_name   = x_table_name
  and ev.owner(+)      = col.owner
  and ev.table_name(+) = col.table_name
  and evc.owner(+)     = ev.owner
  and evc.view_name(+) = ev.view_name
  and (ev.view_name is null or evc.table_column_name = col.column_name)
order by col.owner, col.table_name, evc.view_column_id
/

論理(EV)列情報のみ

このカテゴリのディクショナリ・ビューでは、論理列に関する情報のみが提供されます。物理列名を自分自身で論理列名にマップしようとしている場合は、これらのビューに結合するのみです。

物理(表)列情報のみ

次のディクショナリ・ビューでは、物理表列に関する情報が提供されます。これらのビューの使用は、実際の物理表を管理する目的の場合が多く、このような参照は論理列名を使用するように変換する必要はありません。ただし、チェックする価値はあります。

非エディション化オブジェクト

非エディション化オブジェクトには、アプリケーション・エディション全体で共有される同じ定義があります。このようなオブジェクトには、実行中のアプリケーションに影響を与えないようにパッチを慎重に適用する必要があります。

順序

順序の詳細は、『Oracle Database管理者ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

特別な考慮事項はありません。

使用方法の標準

特別な考慮事項はありません。

動的DDLの標準

特別な考慮事項はありません。

オンライン・パッチ適用準拠の標準

ユーザー定義タイプ(UDT)(非エディション化)

タイプの詳細は、『Oracle Database PL/SQL言語リファレンス 11g リリース2 (11.2)』を参照してください。

定義の標準

注意: 表列またはAQで参照される既存のユーザー定義タイプは、リリース12.2のアップグレード時に、非エディション化UDT標準に準拠するように自動的にアップグレードされます。

使用方法の標準

動的DDLの標準

適用はありません。

オンライン・パッチ適用準拠の標準

一時表

定義の標準

特別な考慮事項はありません。

注意: 通常の表と異なり、一時表にはエディショニング・ビューはありません。

使用方法の標準

特別な考慮事項はありません。

動的DDLの標準

特別な考慮事項はありません。

オンライン・パッチ適用準拠の標準

アドバンスト・キュー(AQ)

Oracle Streams Advanced Queuingの詳細は、『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

AQペイロード・タイプは、APPS_NEが所有する非エディション化UDTであり、その完全修飾名(例: APPS_NE.<type_name>)で参照する必要があります。

注意: エディション化ユーザー定義タイプを参照する既存のAQペイロード・タイプは、リリース12.2のアップグレード時に、対応する非エディション化ユーザー定義タイプを参照するように自動的にアップグレードされます。

使用方法の標準

特別な考慮事項はありません。

動的DDLの標準

特別な考慮事項はありません。

オンライン・パッチ適用準拠の標準

実行中のアプリケーションと互換性のない方法で既存のAQを変更または削除しないでください。

アプリケーション・コンテキスト

アプリケーション・コンテキストの詳細は、『Oracle Databaseセキュリティ・ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

特別な考慮事項はありません。

使用方法の標準

特別な考慮事項はありません。

動的DDLの標準

特別な考慮事項はありません。

オンライン・パッチ適用準拠の標準

XMLスキーマ

XMLスキーマおよびOracle XML DBの詳細は、『Oracle XML DB開発者ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

使用方法の標準

特別な考慮事項はありません。

動的DDLの標準

特別な考慮事項はありません。

オンライン・パッチ適用準拠の標準

データベース・リンク

データベース・リンクの作成方法の詳細は、『Oracle Database管理者ガイド 11g リリース2 (11.2)』を参照してください。

定義の標準

適用はありません。

使用方法の標準

データベース・リンクを介したオブジェクトのアクセスは、そのアクセスがパッチ・エディションからの場合でも、ターゲット・データベースの実行エディションが常に使用されます。

動的DDLの標準

特別な考慮事項はありません。

オンライン・パッチ適用準拠の標準

適用はありません。

パーティション

パーティションの詳細は、『Oracle Database概要 11g リリース2 (11.2)』を参照してください。

定義の標準

特別な考慮事項はありません。

使用方法の標準

特別な考慮事項はありません。

動的DDLの標準

特別な考慮事項はありません。

外部データ・ファイル

外部データ・ファイルは、データベース内ではなく、ファイル・システム上に格納されるユーザー・データまたはビジネス・データです。外部データ・ファイルの例には、コンカレント・レポート出力、ログ・ファイル、データ・インポート/エクスポート・ファイル、およびファイルベースのシステム統合があります。外部データ・ファイルは、判読可能であるか、アプリケーション・コード・レベルにほとんど依存しない構造のいずれかです。これらのファイルには、Oracle E-Business Suiteによってパッチが直接適用されることはなく、(他のタイプのビジネス・データと同様に)エディション化しないでください。

Oracle E-Business Suiteリリース12.2では、APPL_TOPファイル・システムが現在はエディション化され、外部データ・ファイルの格納に適さなくなりました。このため、オンライン・パッチ適用アーキテクチャによって、外部データ・ファイルと他の非エディション化ファイルの格納を目的として、新しい非エディション化ファイル・システムが導入されます。

定義の標準

非エディション化ファイル・システムAPPL_TOP_NEで外部データ・ファイルに対して格納またはアクセスを実行するように、アプリケーションを構成します。

使用方法の標準

APPL_TOP_NE環境変数を使用して、非エディション化APPL_TOPを参照します。

例: $APPL_TOP_NE/fnd/import

オンライン・パッチ適用中の機能の無効化の例

オンライン・パッチ適用中に機能を無効化するためのコード例を示します。

--
-- Test if online patching is in progress, if so, block execution
--
if ad_zd.get_edition('PATCH') is not null then
  -- an online patch is in progress, return error
  fnd_message.set_name('FND', 'AD_ZD_DISABLED_FEATURE');
  raise_application_error ('-20000', fnd_message.get);
end if;

オンライン・パッチ適用中のコンカレント・プログラムのブロック

オンライン・パッチ適用の進行中にコンカレント・プログラムの実行をブロックするには、次のように、コンカレント・プログラムに対して非互換性ルールを定義する必要があります。

  1. 「コンカレント・プログラム」ウィンドウまたはページを使用して、コンカレント・プログラム定義を編集します。

  2. 「非互換」ボタンを選択して、「非互換プログラム」ウィンドウを開きます。

  3. 次のプログラムを使用して、対象のプログラムに対して新しいグローバル非互換性ルールを追加します。

PL/SQLファンクションに対するSQL置換の例

APPSスキーマをエディション可能にするには、エディション化不可オブジェクトがエディション化可能オブジェクトに依存しないようにする必要があります。この要件を満たすために、データベース・オブジェクト開発標準では、マテリアライズド・ビュー(エディション化不可)で、PL/SQLファンクション(エディション化可能)をコールしないことが指定されています。

次の例では、マテリアライズド・ビューで、よく使用されるOracle Applications Technology PL/SQLファンクション・コールを同等のSQLに置換する方法を示します。upper()などのビルトインPL/SQLファンクションは引き続きコールできます。

fnd_profile.value()のSQL sub-selectへの置換

置換前:

fnd_profile.value('MSC_HUB_REGION_INSTANCE')           

置換後:

(select profile_option_value from fnd_profile_option_values             
where level_id = 10001 and (profile_option_id, application_id) =             
(select profile_option_id, application_id from fnd_profile_options             
where profile_option_name = 'MSC_HUB_REGION_INSTANCE'))           

注意:

fnd_message.get_string()のSQL sub-selectへの置換

置換前:

fnd_message.get_string('MSC','MSC_HUB_UNASSIGNED')           

置換後:

(select substrb(REPLACE(message_text, '&&', '&'),1,2000)  
from fnd_new_messages m, fnd_application a   
where m.message_name = 'MSC_HUB_UNASSIGNED'  
and m.language_code = 'US' 
and a.application_short_name = 'MSC'   
and m.application_id = a.application_id)          

注意:

fnd_global.lookup_security_group()のSQL sub-selectへの置換

置換前:

 fnd_global.lookup_security_group('INTEREST_STATUS', 279)           

置換後:

(select nvl(max(lt.security_group_id), 0) 
from fnd_lookup_types lt   
where lt.view_application_id = 279 
and lt.lookup_type = 'INTEREST_STATUS'  
and lt.security_group_id in ( 
0, 
to_number(decode(substrb(userenv('CLIENT_INFO'),55,1),  
' ', '0',
null, '0',  
 substrb(userenv('CLIENT_INFO'),55,10)))))           

この置換は、マテリアライズド・ビューでのみ有効です。fnd_global.security_group()の他の使用については、通常のPL/SQLコールを引き続き使用してください。

遅延削除の例

遅延削除のコード例を示します。この例は表を対象としています。

REM dbdrv: sql ~PROD ~PATH ~FILE \
REM dbdrv:   none none none sqlplus &phase=last \
REM dbdrv:   checkfile:~PROD:~PATH:~FILE &un_fnd

-- Example logic to drop a table under online patching
-- 
-- Note:  This script drops example table "APPLSYS.FND_EXAMPLE_TABLE". 
-- To use this logic for another table, you must substitute "&un_fnd" with the
-- actual table owner token ("&un_<app_short_name>"), and 
-- "FND_EXAMPLE_TABLE" with the actual table name. 
--
-- Usage
--    @TABLE_DROP_SCRIPT <table_owner>

drop synonym FND_EXAMPLE_TABLE;
drop view &1..FND_EXAMPLE_TABLE#;
exec ad_zd.load_ddl('CLEANUP', 'drop table &1..FND_EXAMPLE_TABLE')