如题:  A、B 为不同的DB环境
现有DB A 下用户 A1    DB B 下用户 B1 现在需要把A1用户下的所有table 的复制到 B1下,只Copy 结构、SP、View 等,不要数据,请问有什么批量的方法???

解决方案 »

  1.   

    select 
    'create table '||table_name||'bak as select * from '||table_name||' where 1=2'
    from user_tables
      

  2.   

    --视图也可以用类似的方法
    select 
    'create or replace view '||view_name||'bak as select * from '||view_name||' where 1=2'
    from user_views
      

  3.   

         DB A、B目前不能相互访问,不能在B DB里查询A 下的User_tables,这样怎么复制呢?
         
      

  4.   

    使用SQL server 下的导入导出工具
      

  5.   

    --数据库链接
    create  database linkname
    CONNECT TO b1 IDENTIFIED BY password
    using '(DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库b的机器ip)(PORT = 1521)) 

    (CONNECT_DATA = 
    (SERVICE_NAME = 数据库b的sid) 

    )';
    在进行spool select
    'create table '||table_name||' as select * from '||table_name@linkname||' where 1<>1'
    from user_tables@linkname然后在a机上运行刚刚spool的文件
      

  6.   

    我觉得你还是用expdp ,impdp
    在b导出用户所有的对象 ,在A机导入
      

  7.   

    plsql dev的TOOLS下面有个export user objects,可以导出选中的对象,这样比较方便