Dans OracleEBS, il existe des modules comme, AP, AR, XLA, etc. Chaque module a son propre schéma nommé comme le nom du module correspondant. Il y a aussi le schéma APPS. Vous pouvez accéder à différentes tables à partir de schémas différents via un synonyme pour les objets créés dans le schéma APPS. Par exemple, il existe une table dans le schéma xla nommée xla.xla_transaction_entities et la table a un synonyme dans le schéma des applications. C'est, les deux requêtes suivantes doivent sélectionner produire ensemble de résultats identiques:La table et le synonyme de la même table produisent des résultats différents
select distinct entity_code from xla.xla_transaction_entities
et
select distinct entity_code from apps.xla_transaction_entities
Cependant, la deuxième requête a produit moins de résultats que le premier. Ensuite, j'ai supprimé et recréé le synonyme apps.xla_transaction_entities. Ce n'est qu'après avoir recréé le synonyme que les deux requêtes ci-dessus ont produit des ensembles de résultats identiques. La question est: pourquoi cela arriverait-il? Qu'est-ce qui a amené le synonyme à produire un ensemble de résultats différent? Pour autant que je sache, les synonymes ne sont que des synonymes. Comme leur nom l'indique, ils devraient produire le même ensemble de résultats que leurs tables correspondantes.
Edit: Dans un autre cas de test, je reproduit le même problème:
select distinct entity_code from apps.xla_transaction_entities
produit les éléments suivants:
THIRD_PARTY_MERGE
MANUAL
INTER_ASSET_TRANSACTIONS
TRANSACTIONS
DEPRECIATION
select distinct entity_code from xla.xla_transaction_entities
produit les éléments suivants:
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'
me donne ce qui suit:
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'
produit les éléments suivants:
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
Ainsi, vous pouvez voir que APPS.XLA_TRANSACTION_ENTITES po ints à XLA.XLA_TRANSACTION_ENTITIES. Et encore, une fois que je recréer le synonyme, le problème est parti. La raison pour laquelle cela me dérange tant est que la plupart des rapports personnalisés que nous avons codés utilisaient des synonymes au lieu de noms de tables réels. Ainsi, je me demande si à moins que je recrée tous les synonymes dans le schéma d'APPS le problème persistera ou non.
Avant de laisser tomber et de recréer le synonyme, il aurait été conseillé de vérifier DBA_SYNONYMS pour voir ce qu'il pointait, alors qui aurait pu faire la lumière sur la question. – TenG
Les informations requises sont fournies sous la forme d'une édition de la question. – Ahmedov
Mon point était pour référence future de voir ces données avant que le synonyme soit abandonné si quelque chose de semblable se produit à nouveau. Comme pour le reste d'entre eux, vous pourriez peut-être vérifier toutes les lignes dans DBA_SYNONYMS où le synonyme_name! = Nom_table comme un début. – TenG