您的位置:首页 > 其它

create table as 在Ogg中测试

2015-02-28 23:41 357 查看
测试环境:

Version 11.2.1.0.24 18876493 OGGCORE_11.2.1.0.0OGGBP_PLATFORMS_140623.2214_FBO

Solaris, sparc, 64bit (optimized), Oracle 11g on Jun 25 2014 04:55:01

对比两种创建方式

使用create table as 手动创建的表 方式

create table TTT.ogg_test01 (id number,name varchar2(32));

insert into TTT.ogg_test01 values (1,'aaa');

insert into TTT.ogg_test01 values (2,'bbb');

commit;

create table TTT.ogg_test02 as select * from  TTT.ogg_test01;

insert into TTT.ogg_test02 values (3,'ccc');

commit;

update TTT.ogg_test02 set name='DDD' where id=2;

commit;

delete from TTT.ogg_test02;

commit;

drop table TTT.ogg_test02 purge;

成功!

使用create table insert 手动创建的表 方式

drop table TTT.ogg_test01 purge;

create table TTT.ogg_test01 (id number,name varchar2(32));

insert into TTT.ogg_test01 values (1,'aaa');

insert into TTT.ogg_test01 values (2,'bbb');

commit;

update TTT.ogg_test01 set name='CCC' where id=2;

commit;

delete  from TTT.ogg_test01 ;

commit;

成功!

使用create table as 系统自身的表

create table TTT.ogg_test03 as select username,user_id from dba_users order by 2;

insert into TTT.ogg_test03 values (118,'LLL');

commit;

update TTT.ogg_test03 set name='DDD' where id=118;

commit;

delete from TTT.ogg_test03;

commit;

drop table TTT.ogg_test03 purge;

这种测试方法是不成立的,所以才会造成replicat进程abend!

因为在源端 select username,user_id from dba_users order by 2;

        与备端select username,user_id from dba_users order by 2;的结果并不一致!,不可以想当然哦?!

DDL在ogg11g中仍然是使用DDL trigger转化为DML来实现的,因此传递到备端的是整句的sql语句!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  create table as ogg