Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
5 mai 2012 6 05 /05 /mai /2012 15:27

 

Créer des Synonyms sur des Objets d'un Schéma Oracle.

Comment créer des Synonyms sur des tables d'un schéma / User dans Oracle.
Comment créer des Synonyms sur les Procédures ou Fonctions d'un schéma dans Oracle.

Syntaxe pour la création de synonymes privés dans Oracle.

 
 CREATE [OR REPLACE] SYNONYM [schéma.]NomSynonym FOR [schéma.]nomObjet [@lienBaseDonnées]; 

 

Création de Synonym sur les Objets Table d'un Schéma ou Utilisateur dans Oracle.

Nous allons créer des synonymes privés sur les Objets Tables appartenant à un utilisateur (ici user Scott) donc un Schéma en s'aidant de la vue DBA_OBJECTS.
Création d'un fichier script que l'on appellera creation-synonym.sql sur C:\ avec les instructions sql ci-dessous.

 
 REM FICHIER SCRIPT creation-synonym.sql******* REM SET HEADING OFF SET ECHO OFF SPOOL 'C:\create-synonym-tables-objects.sql' SELECT 'CREATE OR REPLACE SYNONYM ' ||LOWER(object_name) ||' FOR ' ||LOWER(owner)||'.'||LOWER(object_name) ||';' AS "CREATE TABLE SYNONYM" FROM dba_objects WHERE owner = 'SCOTT' AND object_type = 'TABLE'; SPOOL OFF 

Puis exécution de ce script creation-synonym.sql.
Celui ci va générer un fichier C:\create-synonym-tables-objects.sql que l'on exécutera ensuite via la console Sql*Plus ou simplement en mode copier/coller dans la console.

 
 SQL> @c:\creation-synonym.sql CREATE OR REPLACE SYNONYM b1 FOR scott.b1; CREATE OR REPLACE SYNONYM a1 FOR scott.a1; CREATE OR REPLACE SYNONYM eleve FOR scott.eleve; CREATE OR REPLACE SYNONYM participe FOR scott.participe; CREATE OR REPLACE SYNONYM evaluation FOR scott.evaluation; CREATE OR REPLACE SYNONYM new_emp FOR scott.new_emp; CREATE OR REPLACE SYNONYM vehicule FOR scott.vehicule; CREATE OR REPLACE SYNONYM dept FOR scott.dept; CREATE OR REPLACE SYNONYM bonus FOR scott.bonus; CREATE OR REPLACE SYNONYM salgrade FOR scott.salgrade; CREATE OR REPLACE SYNONYM emp FOR scott.emp; CREATE OR REPLACE SYNONYM table_a FOR scott.table_a; 12 ligne(s) sélectionnée(s). SQL> 

La clause Select de la requête a construit les commandes sql de création de synonym sur toutes les tables du schéma Scott, le tout est spoolé dans le fichier C:\create-synonym-tables-objects.sql.
On exécute celui-ci et les synonymes privés sur les Objets Tables appartenant l'utilisateur Scott seront créés.

 
 SQL> @c:\create-synonym-tables-objects.sql Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. Synonyme créé. SQL> 

Nous aurions pu ajouter la commande Sql*Plus @c:\create-synonym-tables-objects.sql à la fin du fichier script creation-synonym.sql pour une exécution direct en une seule passe comme ceci.

 
 REM FICHIER SCRIPT creation-synonym.sql******* REM SET HEADING OFF SET ECHO OFF SPOOL 'C:\create-synonym-tables-objects.sql' SELECT 'CREATE OR REPLACE SYNONYM ' ||LOWER(object_name) ||' FOR ' ||LOWER(owner)||'.'||LOWER(object_name) ||';' AS "CREATE TABLE SYNONYM" FROM dba_objects WHERE owner = 'SCOTT' AND object_type = 'TABLE'; SPOOL OFF @C:\create-synonym-tables-objects.sql 

 

Création de Synonym sur les Objets Fonctions, Sequences, Packages d'un Schéma ou Utilisateur dans Oracle.

Nous utiliserons le même script pour la création des synonymes privés sur les Objets de type Function, Sequence, Package.
Nous changerons simplement le type d'objet dans AND object_type='TABLE' par AND object_type IN ('FUNCTION','SEQUENCE','PACKAGE').

 REM FICHIER SCRIPT creation-synonym.sql******* REM SET HEADING OFF SET ECHO OFF SPOOL 'C:\create-synonym-objects.sql' SELECT 'CREATE OR REPLACE SYNONYM ' ||LOWER(object_name) ||' FOR ' ||LOWER(owner)||'.'||LOWER(object_name) ||';' AS "CREATE SYNONYM" FROM dba_objects WHERE owner = 'SCOTT' AND object_type IN ('FUNCTION','SEQUENCE','PACKAGE'); SPOOL OFF @C:\create-synonym-objects.sql 

 

Oracle SQL 10G www.dba-ora.fr

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• C'est quoi un Synonyme Public et Prive Oracle
• CREATE / DROP SYNONYM
• DROP SYNONYMS invalides

Partager cet article

Repost 0
Published by Daniel Roesch - dans SYNONYMS
commenter cet article

commentaires