Oracle中表结构和表内容复制

处理该问题注意以下几点:

1. 清空表中数据SQL:truncate table table_name;

2.复制表结构SQL:create table table_name1 as select * from table_name2 where 1=0;

如同时复制内容和创建该表,SQL为:create table table_name1 as select * from table_name2;

3.在sql语句中,时间date类型可以直接比较。

4.select into from结构不太适合,因为PL/SQL会报keyword异常。

所以推荐使用insert into  结构,该结构可以加条件,效率也很高:样例SQL如下:

insert into test_lcpol select * from b2b_lcpol b2b  where b2b.etl_datatime > (select nvl(max(intf.etl_datatime), date '2012-09-27') from test_lcpol intf);

解析该SQL:>后面查询的结果就是一个date类型时间,前面是insert into 结构复制表内容。

5.附加Oracle基本知识点:

增加表的一个字段:alter table test_name add ETL_DATATIME  date

修改表的一个字段:alter table  表名   modify 字段名   varchar2(长度)

样例SQL:alter table test_name  modify WORKTYPE varchar(80);

修改表的一个字段设置为可一置空:alter table table_name modify BIRTHDAY null;

 

 

posted @ 2013-10-10 17:28  程序员张越  阅读(695)  评论(0编辑  收藏  举报