DECLARE
v_table_name VARCHAR2(30);
v_syn_name VARCHAR2(30);
BEGIN
-- Boucle sur toutes les tables de l'utilisateur 'NOM_UTILISATEUR'
FOR t IN (SELECT table_name FROM all_tables WHERE owner = 'NOM_UTILISATEUR')
LOOP
v_table_name := t.table_name;
v_synname := 'SYN' || v_table_name;
-- Vérifie si le synonyme existe déjà
BEGIN
EXECUTE IMMEDIATE 'DROP SYNONYM ' || v_syn_name;
EXCEPTION
WHEN OTHERS THEN NULL;
END;
-- Crée un synonyme pour la table si le synonyme n'existe pas déjà
EXECUTE IMMEDIATE 'CREATE SYNONYM ' || v_syn_name || ' FOR NOM_UTILISATEUR.' || v_table_name;
DECLARE v_table_name VARCHAR2(30); v_syn_name VARCHAR2(30); BEGIN -- Boucle sur toutes les tables de l'utilisateur 'NOM_UTILISATEUR' FOR t IN (SELECT table_name FROM all_tables WHERE owner = 'NOM_UTILISATEUR') LOOP v_table_name := t.table_name; v_synname := 'SYN' || v_table_name;
END LOOP; END; /