bonjour,
je voudrais s'il vous plait mieux connaitre l'utilité des synonymes
merci
×
注意!页面内容来自https://www.developpez.net/forums/d135269/bases-donnees/oracle/synonymes/,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页









bonjour,
je voudrais s'il vous plait mieux connaitre l'utilité des synonymes
merci










Bonjour,
Quand tu essaies d'accéder à un objet qui appartient à un autre schématu es obligé de préciser le nom de l'objet de la forme suivante : propriétaire.objet
Dans ce casun synonyme est une sorte d'aliasil te suffit d'indiquer le nom de ton synonyme au lieu du nom de l'objet complètement qualifé.
Tu as des synonymes qui sont privés (ie n'appartiennent qu'a ton compte Oracle) et d'autre qui sont publiques (ie visible par tout les comptes Oracle).
Une autre utilisation possible est quand tu remplaces une table (TTOTO) par une vue (VTOTO)un synonyme TTOTO pointant vers VTOTO te permet d'éviter d'adapter ton code.
Laly.
In the heart of the truly greatsperfection is never achieved but endlessly pursued.
Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobilesde quartiles et bien d'autres...)










Pour faire une analogie avec le systèmeun synonymec'est exactement comme un "raccourci" sour Windows ou un lien symbolique sous Nux : c'est une autre façonen générale plus rapidede nommer un objet mais sans que cela ne donne de droits dessus.











un synonyme permet aussi de référencer une table dans une autre base
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SQL> create or replace synonym scott.emp for scott.emp@db01.us.oracle.com; Synonym created. SQL> create or replace synonym scott.emp for scott.emp@db01.eu.oracle.com; Synonym created.









alors je voudrais svp qu'on discute ce cas
on a 3 schema différent qui ont des tables avec le meme nom (certaine tables) et cela suit aune mauvaise conception ou autre
schema1(table1table2table3,........)
schema2(table1table2table3,........)
schema3(table1table2table3,........)
on a eu besoin de creer des synonymes sachant qu'on peut pas toucher au code et que le nom du synonyme doit etre identique au nom de la table alors
pour le schema1 on creer des synonymes publics pour les tables : table1table2table3
par ce que pour le schema2 on peux pas faire la meme chose on a creer des synonymes privée pour chaque utilisateur "penible"
mais qu'est ce qu'on va faire pour le schema3 si le deux schema (2 et 3) ont des utilisateur en commun









Tu devrais expliciter un peu plus ton problème ...
A vu de nez je pense qu'il vaut mieux passer par l'instruction :
alter session set current_schema = nom_du_schema;
En groslorsque ton user se connectetu lances :
conn toto/toto@base
alter session set current_schema=SCHEMA1;
==> vérification :
select sys_context('userenv','current_schema') x from dual ;
(si ce toto ne doit voir que les tables de schema1)
Parallélement à cela pour que cela marche il faudra que ton user dispose de droit sur les tables de schema1 :
grant selectinsertupdatedelete ....
Partager