1

OracleEBS には、AP、AR、XLA などのモジュールがあります。各モジュールには、対応するモジュール名と同じ名前の独自のスキーマがあります。APPS スキーマもあります。APPS スキーマで作成されたオブジェクトのシノニムを介して、異なるスキーマの異なるテーブルにアクセスできます。たとえば、xla スキーマに xla.xla_transaction_entities という名前のテーブルがあり、このテーブルには apps スキーマにシノニムがあります。つまり、次の 2 つの選択クエリは、同一の結果セットを生成する必要があります。

select distinct entity_code from xla.xla_transaction_entities

select distinct entity_code from apps.xla_transaction_entities

ただし、2 番目のクエリは最初のクエリよりも少ない結果しか生成しませんでした。次に、apps.xla_transaction_entities シノニムを削除して再作成しました。シノニムを再作成した後でのみ、上記の 2 つのクエリは同一の結果セットを生成しました。問題は、なぜそれが起こるのかということです。シノニムが異なる結果セットを生成した原因は何ですか? 私の知る限り、同義語はまさに同義語です。名前が示すように、対応するテーブルと同じ結果セットを生成する必要があります。

編集:別のテストインスタンスで、同じ問題を再現しました:

select distinct entity_code from apps.xla_transaction_entities

以下を生成します。

THIRD_PARTY_MERGE
MANUAL
INTER_ASSET_TRANSACTIONS
TRANSACTIONS
DEPRECIATION

select distinct entity_code from xla.xla_transaction_entities

以下を生成します。

AP_PAYMENTS
RCV_ACCOUNTING_EVENTS
THIRD_PARTY_MERGE
MANUAL
ADJUSTMENTS
PURCHASE_ORDER
MTL_ACCOUNTING_EVENTS
RECEIPTS
INTER_ASSET_TRANSACTIONS
AP_INVOICES
TRANSACTIONS
DEPRECIATION

  select * from dba_synonyms
  where synonym_name = 'XLA_TRANSACTION_ENTITIES'

私に次を与えます:

OWNER   SYNONYM_NAME              TABLE_OWNER   TABLE_NAME,               DB_LINK
APPS    XLA_TRANSACTION_ENTITIES  XLA           XLA_TRANSACTION_ENTITIES

select * from dba_synonyms
where TABLE_NAME = 'XLA_TRANSACTION_ENTITIES'

以下を出力します。

OWNER    SYNONYM_NAME                   TABLE_OWNER    TABLE_NAME               DB_LINK
APPS     XLA_TRANSACTION_ENTITIES       XLA            XLA_TRANSACTION_ENTITIES
APPS     XLA_TRANSACTION_ENTITIES_UPG   XLA            XLA_TRANSACTION_ENTITIES

したがって、APPS.XLA_TRANSACTION_ENTITES が XLA.XLA_TRANSACTION_ENTITIES を指していることがわかります。繰り返しになりますが、シノニムを再作成すると、問題はなくなりました。これが非常に気になる理由は、コーディングしたカスタマイズされたレポートのほとんどが、実際のテーブル名ではなく同義語を使用していたためです。したがって、APPS スキーマですべてのシノニムを再作成しない限り、問題が解決しないかどうか疑問に思っています。

4

3 に答える 3