新建了一个C用户,想把另一个数据库上的用户B的库表结构(只要表结构,包括表的主键,索引等信息,不要表的数据)导过来 有什么好办法C和B不能直连,但是B的数据库上面有一个权限较高的A用户,有权限建dblink到B所在的数据库,也有权限在C上面建表==================
若是以上想法不可行,那有没有办法将A的库表结构同步到C ?

解决方案 »

  1.   

    只要DDL,可以exp/imp。不需要同步数据的情况下,建dblink有点浪费噢
    如果使用toad或plsqldev,那么exp/imp就是简单的点点鼠标了。
    如果要命令,参考:
    ORACLE 数据库逻辑备份 简单 EXP/IMP
    http://blog.csdn.net/tianlesoftware/archive/2009/10/24/4718366.aspx 
      

  2.   

    在命令行中执行
    exp b/b@tnsnames file=b.dmp rows=n owner=(b)
    imp c/c@tnsnames file=b.dmp fromuser=(b) touser=(c) full=y ignore=y
    以上假设b和c都有导入导出的权限
      

  3.   

    用PL/SQL连上此数据库,查看此表创建语句。
      

  4.   


    我用了你的命令试了一下,结果报错,不知道为什么Import: Release 10.2.0.2.0 - Production on Mon Jan 25 12:33:41 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining optionsExport file created by EXPORT:V10.02.01 via conventional path
    import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
    IMP-00024: Only one mode (TABLES, FROMUSER, or FULL) can be specified
    IMP-00000: Import terminated unsuccessfully
      

  5.   


    同步表结构,表的结构会经常改变么,如果是的话,可能就要思考一下你们的体系设计了。如果不常改的话,最简单的方法就是导出,导入了,记得加上ROWS=N
      

  6.   

    如果是只是单纯针对这张表想吧这个表结构导过来最简单的方法
    用plsql 
    在plsql里找到这张表,右键选择编辑或者查看,右下角点击 查看sql(view sql)
    把sql粘出来到那个库上执行一下
    完事ok了
      

  7.   

    查看SQL也许是最快的方式了,对于一个或少量表而言
      

  8.   

    对,查询出ddl的sql,到目标库执行省事还快
      

  9.   

    导出表结果,在C用户上运行简单的pl/sql developer 工具有专门的导出表结果