请问oracle里怎么样复制表结构,带有默认值和主键的,谢谢高手帮我看看!
我用了create table a2 as select * from a where 1=2; 但这样存在个问题,没有复制默认值和主键,我用什么方法可以实现所有复制呢,语句和存储过程都可以,谢谢各位,如果大家也想了解一下,麻烦帮忙顶一下,谢谢!

解决方案 »

  1.   

    我是用java程式序调用他可以吧,是不是要写个存储过程才可以实现?
      

  2.   

    我是用java程式序调用他可以吧,但这样是不是生成文件了,我想实现用户自己复制的功能,这样下来可能会相当大了,有没有好办法
      

  3.   

    declare sql varchar(500);
    select  dbms_metadata.get_dll('TABLE','TABLE_NAME') into sql from dual; 
    exec(sql);
      

  4.   

    查看那个表的建表语句,然后copy改下表名执行就ok了
      

  5.   

    SQL> select   dbms_metadata.get_ddl('TABLE','yxy_class','tpl')   from   dual;   
    ERROR:
    ORA-31603: 对象 "yxy_class" 属于类型 TABLE, 在方案 "tpl" 中未找到
    ORA-06512: 在"SYS.DBMS_SYS_ERROR", line 105
    ORA-06512: 在"SYS.DBMS_METADATA_INT", line 2857
    ORA-06512: 在"SYS.DBMS_METADATA_INT", line 3192
    ORA-06512: 在"SYS.DBMS_METADATA_INT", line 4078
    ORA-06512: 在"SYS.DBMS_METADATA", line 326
    ORA-06512: 在"SYS.DBMS_METADATA", line 410
    ORA-06512: 在"SYS.DBMS_METADATA", line 449
    ORA-06512: 在"SYS.DBMS_METADATA", line 615
    ORA-06512: 在"SYS.DBMS_METADATA", line 1221
    ORA-06512: 在line 1这是为什么?