大侠,请教一个问题,已经有一系列表,它们的命名都有一定规则如XN_CGYGZGL,怎么能用SQl语句导出创建这些表结构的sql语句?? 
  

解决方案 »

  1.   

    dbms_metadata 10g以上可以使用这个package导出
      

  2.   

    用存储过程,循环调用dbms_metadata 
      

  3.   

    10G的话,使用Expdp 的 include子句
    expdp userid/password content=metadata_only include=table:\"like \'XN_CGYGZGL\'\"
      

  4.   

    10g的话,
    select dbms_metadata.get_ddl('TABLE','table_name','table_owner') from dual;
      

  5.   

    通过exp/imp 变通的方式:
    实现步骤: 
    1、用EXP工具导出
    2、导入时使用show=y选项、log选项
    3、查看、编辑日志文件具体实例: 1、调出SQL*Plusconn system/manager
    grant connect,resource to a identified by a;
    grant connect,resource to b identified by b;
    conn a/acreate table a(a number);
    insert into a values(1);
    insert into a values(2);
    insert into a values(3);create table b(a number,b varchar2(10));
    insert into b values(1,'1111');
    insert into b values(2,'2222');
    insert into b values(3,'3333');
    commit;
    2、打开一个DOS窗口、先执行导出E:\>exp a/a file=a.dmp log=loga.txtExport: Release 8.1.6.0.0 - Production on 星期五 12月 1 22:24:16 2000(c) Copyright 1999 Oracle Corporation. All rights reserved.
    连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.6.0.0 - Production
    已导出ZHS16GBK字符集和ZHS16GBK NCHAR 字符集
    . 正在导出 pre-schema 过程对象和操作
    . 正在导出用户A的外部函数程序库名称
    . 正在导出用户A的对象类型定义
    即将导出A的对象 ...
    . 正在导出数据库链接
    . 正在导出序号
    . 正在导出群集定义
    . 即将导出A的表通过常规路径 ...
    . . 正在导出表 A 3 行被导出
    . . 正在导出表 B 3 行被导出
    . 正在导出同义词
    . 正在导出视图
    . 正在导出存储的过程
    . 正在导出运算符
    . 正在导出引用完整性约束条件
    . 正在导出触发器
    . 正在导出索引类型
    . 正在导出位图、功能性索引和可扩展索引
    . 正在导出后期表活动
    . 正在导出快照
    . 正在导出快照日志
    . 正在导出作业队列
    . 正在导出刷新组和子组
    . 正在导出维
    . 正在导出 post-schema 过程对象和操作
    . 正在导出统计
    在没有警告的情况下成功终止导出。E:\>3、再执行导入,使用show=y、log这两个选项E:\>imp a/a file=a.dmp show=y log=logb.txtImport: Release 8.1.6.0.0 - Production on 星期五 12月 1 22:29:49 2000(c) Copyright 1999 Oracle Corporation. All rights reserved.
    连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.6.0.0 - Production经由常规路径导出由EXPORT:V08.01.06创建的文件
    已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
    . 正在将A的对象导入到 A
    "CREATE TABLE "A" ("A" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 25"
    "5 LOGGING STORAGE(INITIAL 131072 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483"
    "645 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLE"
    "SPACE "SYSTEM""
    . . 正在跳过表 "A""CREATE TABLE "B" ("A" NUMBER, "B" VARCHAR2(10)) PCTFREE 10 PCTUSED 40 INIT"
    "RANS 1 MAXTRANS 255 LOGGING STORAGE(INITIAL 131072 NEXT 65536 MINEXTENTS 1 "
    "MAXEXTENTS 2147483645 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_P"
    "OOL DEFAULT) TABLESPACE "SYSTEM""
    . . 正在跳过表 "B"成功终止导入,但出现警告。E:\>4、使用编辑器打开logb.txt,里面可以看到DDL语句