可以用exp/imp导出用户A的所有对象的定义包括synonym,然后提取synonym的语句即可,过程如下:
1.exp userid=xxx/xxx@xxx owner=A file=c:\nodata.dmp rows=n
2.imp userid=xxx/xxx@xxx fromuser=A file=c:\nodata.dmp indexfile=all_ddl.sql
3.去掉all_ddl.sql中的rem,使用正则表达式替换";"为";\n"....

解决方案 »

  1.   

    能不能直接到处创建SYNONYM的SQL
    CREATE PUBLIC SYNONYM XXXTABLE FOR A.XXXTABLE
      

  2.   

    可以用dba studio 查看各个synonym对象的DDL语句
    或者pl/sql developer也可以查看其sql语句
      

  3.   

    恩,我看了。
    可是太多了,难道要一个个COPY吗?
    1600
      

  4.   

    Oracle 9.2提供了一个DBMS_METADATA程序包。
    调用DBMS_METADATA.GET_DDL()函数
      

  5.   

    Oracle 9.2以后的版本才支持,是sys的一个包,可以在sql*plus里用desc DBMS_METADATA查看,或者在dba_source里(select text from dba_source where name='DBMS_METADATA';)查看该过程的用法,如果有pl/sql developer可以直接查看其用法...