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语句!
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 select性能测试
- create table as select性能测试
- Insert into select 与create table as的性能测试及create table
- create table as select性能测试
- insert into select 与 create table as的用法和区别
- Mysql create table tb as select 和create table tb like的区别
- Using CREATE TABLE AS SELECT (CTAS) to Reorganize Oracle Tables
- MySQL create table as 与 like区别
- SELECT INTO , INSERT INTO SELECT 和 CREATE TABLE AS SELECT 的区别
- create table as select
- 原表是nologging,为什么create table.. as select还是有redo log产生?
- 慎用create table as select,一定要注意默认值的问题
- create table repo_folder_operate_log_bak as select * from repo_folder_operate_log;
- MySQL的create table as 与 like区别
- sqlserver不能直接create table as select ......
- postgres create table as select & create table like
- create table as select 和 create table 再insert into select 的差异
- sqlserver不能直接create table as select ......
- create table as 产生的问题
- 慎用create table as select,一定要注意默认值的问题