spool c:\object.sql
SQL> select 'create public synonym syn_name for '||'scott.'||object_name from u
er_objects;'CREATEPUBLICSYNONYMSYN_NAMEFOR'||'SCOTT.'||OBJECT_NAME
-------------------------------------------------------------------------------create public synonym syn_name for scott.AB
create public synonym syn_name for scott.ACCOUNT
create public synonym syn_name for scott.ACCOUNT
create public synonym syn_name for scott.AVERAGE_MARKS
create public synonym syn_name for scott.B
create public synonym syn_name for scott.BONUS
create public synonym syn_name for scott.C
create public synonym syn_name for scott.CLIENT
create public synonym syn_name for scott.CREATE$JAVA$LOB$TABLE
create public synonym syn_name for scott.DBMS_SHARED_POOL
create public synonym syn_name for scott.DB_VER'CREATEPUBLICSYNONYMSYN_NAMEFOR'||'SCOTT.'||OBJECT_NAME
-------------------------------------------------------------------------------create public synonym syn_name for scott.DEPT
create public synonym syn_name for scott.DEPT1
create public synonym syn_name for scott.DROP_INFO
create public synonym syn_name for scott.DROP_LOG
create public synonym syn_name for scott.ECHO
create public synonym syn_name for scott.ED
create public synonym syn_name for scott.EMP_DEPT
create public synonym syn_name for scott.EMP_DEPT_INDEX
create public synonym syn_name for scott.GETCLIENTINFO
create public synonym syn_name for scott.GETRECORDCOUNT
create public synonym syn_name for scott.GRADE_TABLE'CREATEPUBLICSYNONYMSYN_NAMEFOR'||'SCOTT.'||OBJECT_NAME
-------------------------------------------------------------------------------create public synonym syn_name for scott.HW3
create public synonym syn_name for scott.IDX_TBL_TEST
create public synonym syn_name for scott.I_SNAP$_VIEW_DEPT
create public synonym syn_name for scott.JAVA$CLASS$MD5$TABLE
create public synonym syn_name for scott.JAVA$OPTIONS
create public synonym syn_name for scott.LETTER
create public synonym syn_name for scott.MEM
create public synonym syn_name for scott.MLOG$_DEPT
create public synonym syn_name for scott.MONLET
create public synonym syn_name for scott.MONTH
create public synonym syn_name for scott.PHONE_LIST_TYP'CREATEPUBLICSYNONYMSYN_NAMEFOR'||'SCOTT.'||OBJECT_NAME
-------------------------------------------------------------------------------create public synonym syn_name for scott.PK_DEPT
create public synonym syn_name for scott.PK_TBL
create public synonym syn_name for scott.PK_TBL_TEST
create public synonym syn_name for scott.PLAN_TABLE
create public synonym syn_name for scott.PRO1
create public synonym syn_name for scott.PRO_DN
create public synonym syn_name for scott.RUN_HELLOWORLD
create public synonym syn_name for scott.RUN_HW3
create public synonym syn_name for scott.SALGRADE
create public synonym syn_name for scott.SB
create public synonym syn_name for scott.SEQ1'CREATEPUBLICSYNONYMSYN_NAMEFOR'||'SCOTT.'||OBJECT_NAME
-------------------------------------------------------------------------------create public synonym syn_name for scott.SEQ2
create public synonym syn_name for scott.SP1
create public synonym syn_name for scott.SP2
create public synonym syn_name for scott.SP3
create public synonym syn_name for scott.SS
create public synonym syn_name for scott.STUDENT_RECORD
create public synonym syn_name for scott.SYN1
create public synonym syn_name for scott.SYS_C002357
create public synonym syn_name for scott.SYS_C002697
create public synonym syn_name for scott.SYS_C002698
create public synonym syn_name for scott.SYS_C002699'CREATEPUBLICSYNONYMSYN_NAMEFOR'||'SCOTT.'||OBJECT_NAME
-------------------------------------------------------------------------------create public synonym syn_name for scott.SYS_C002702
create public synonym syn_name for scott.SYS_C002704
create public synonym syn_name for scott.SYS_C002710
create public synonym syn_name for scott.SYS_LOB0000031927C00002$$
create public synonym syn_name for scott.Student
create public synonym syn_name for scott.TB11
create public synonym syn_name for scott.TBL
create public synonym syn_name for scott.TBLL
create public synonym syn_name for scott.TBLREC
create public synonym syn_name for scott.TBL_TEST
create public synonym syn_name for scott.TEST_JAVA'CREATEPUBLICSYNONYMSYN_NAMEFOR'||'SCOTT.'||OBJECT_NAME
-------------------------------------------------------------------------------create public synonym syn_name for scott.TR
create public synonym syn_name for scott.TRE
create public synonym syn_name for scott.TREE
create public synonym syn_name for scott.TRI1
create public synonym syn_name for scott.TRI_SEQ
create public synonym syn_name for scott.VIEW_DEPT
create public synonym syn_name for scott.VIEW_DEPT
create public synonym syn_name for scott.VM_VER
create public synonym syn_name for scott.hw3
create public synonym syn_name for scott.mem_size
create public synonym syn_name for scott.mem_size'CREATEPUBLICSYNONYMSYN_NAMEFOR'||'SCOTT.'||OBJECT_NAME
-------------------------------------------------------------------------------create public synonym syn_name for scott.prop
create public synonym syn_name for scott.prop
create public synonym syn_name for scott.test已选择80行。最后:spool off然后修改c:\object.sql,删除开头的语句。名字syn_name得自己取了,因为名字不是随意起的。

解决方案 »

  1.   

    create procedure pro
    as
    cursor t_sor is
    select OBJECT_NAME from user_objects;
    str varchar2(100);
    begin
    for v_sor in t_sor loop
    str:='create public synonym v_sor.object_name for v_sor.object_name';
    execute immediate str;
    end loop;
    end;
    /
      

  2.   

    'create public synonym public.object_name for v_sor.object_name'
      

  3.   

    我更改一下:
    SET PAGESIZE 999;
    spool c:\object.sql
    SQL> select 'create public synonym '||
    object_name ||' for '||'scott.'||object_name ||';'
    from user_objects 
    where object_type='TABLE' OR object_type='VIEW'
    OR OBJECT_TYPE='PROCEDURE' OR OBJECT_TYPE='TRIGGER' OR OBJECT_TYPE='PACKAGE'
    OR OBJECT_TYPE='FUNCTION';
    SQL>SPOOL OFF
    SQL>@C:\OBJECT.SQL