Publiczny synonym do wszystkich obiektow usera – Oracle db

Przy migracji pewnej aplikacji Oracle db okazało sie, że jeden z użytkowników ma zrobione public synonym do wszystkich obiektow.

Poniżej mały skrypcik do automatycznego wygenerowania brakujacych synonym

Oczywiscie skrypt w czystym oracle sql. Najlepiej odpalac z usera, któremu chcemy zrobic synonym:

declare
  cursor user_syn is
    select object_name from all_objects where upper(owner) like 'USER_NAME';
  syn varchar2(100);
begin
  open user_syn;
  loop
    fetch user_syn into syn;
    exit when user_syn%NOTFOUND;
    execute immediate 'create or replace public synonym '||syn||' for USER_NAME.'||syn;
  end loop;
  close user_syn;
end;
/

 

Categories: oracle
Tags: ,