请问oracle下如何复制表结构

jjja 2003-08-21 03:20:31
有表t1,现在想复制t1的表结构,但是不复制其数据,新表是t2
create table t2 as select * from t1 where 1=2,这种方法当表中有特殊字段,如long,long raw时不能成功。
请问有没有其他有效的方法?
谢谢。
...全文
1408 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjja 2003-08-26
  • 打赏
  • 举报
回复
不过还是没有找到解决办法丫,唉
David1289 2003-08-22
  • 打赏
  • 举报
回复
认真看一下吗,耐心你就会有收获的
jjja 2003-08-22
  • 打赏
  • 举报
回复
写的好神秘,看不懂也
hdkkk 2003-08-21
  • 打赏
  • 举报
回复
1、获得单个表和索引DDL语句的方法:

-----------------------------------------------------------------------

set heading off;

set echo off;

Set pages 999;

set long 90000;

 

spool get_single.sql

select dbms_metadata.get_ddl('TABLE','SZT_PQSO2','SHQSYS') from dual;

select dbms_metadata.get_ddl('INDEX','INDXX_PQZJYW','SHQSYS') from dual;

spool off;

-----------------------------------------------------------------------

下面是输出。我们只要把建表/索引语句取出来在后面加个分号就可以直接运行了。

-----------------------------------------------------------------------

SQL> select dbms_metadata.get_ddl('TABLE','SZT_PQSO2','SHQSYS') from dual;

 

CREATE TABLE "SHQSYS"."SZT_PQSO2"

( "PQBH" VARCHAR2(32) NOT NULL ENABLE,

"ZJYW" NUMBER(10,0),

"CGSO" NUMBER(10,0) NOT NULL ENABLE,

"SOLS" VARCHAR2(17),

"SORQ" VARCHAR2(8),

"SOWR" VARCHAR2(8),

"SOCL" VARCHAR2(6),

"YWHM" VARCHAR2(10),

"YWLX" VARCHAR2(6)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

TABLESPACE "DATA1"

tiangou 2003-08-21
  • 打赏
  • 举报
回复
create table t2 as select * from t1 where rownum<=1
就拷一条数据嘛
然后truncate table t2;不就行了么?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧