批量创建同义词,SQL语句比较简单
create or replace procedure test is
cursor T is
SELECT 'create or replace synonym ' || a.OBJECT_NAME || ' for ' ||
a.OWNER || '.' || a.OBJECT_NAME row_i,
a.OBJECT_NAME,
a.OWNER
FROM dba_objects a
where a.OWNER = 'SJJH' ---对哪个用户创建同义词
AND a.object_type = 'TABLE' --对象类型为 表
and a.OBJECT_NAME like 'JH_P%'; --对哪些表,我这里是对部分表创建同义词,用了like 过滤
begin
for R in T loop
begin
execute immediate (R.row_i);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(R.row_i);
end;
end loop;
end;