iamlaosong文
1、建表
当我们在数据库服务器上建表的时候,可以先建表结构,再插入数据,例如:
create table song_temp (code varchar2(20),descrip varchar2(100)) tablespace emsdata ;
插入数据:insert into song_temp (code,descrip) values ('2300','合肥市');
插入查询结果:
insert into song_temp select city_code,city_name from tb_county;
这种方式的好处是查询字段和插入字段名称可以不同,如果相同,可以一次性完成建表和查询,这是我们最喜欢的方法:
create table song_tmp tablespace emsdata as select city_code,city_name from tb_county;
对于非本机的数据表查询可以通过数据连接完成,用这个方法可以轻松复制另一台服务器上面的表:
create table tb_city_zd tablespace emsdata as select * from tb_city_zd@dlink_g7;
注意:如果使用默认表空间,上述语句tablespace emsdata可以省略。
2、转移
当我们用一台新服务器代替老服务器上部分功能时,会将部分表和存储过程转移到新服务器,这些处理放到新服务器上之后,会大大缓解老服务器的压力。将数据表迁移到新服务器后,为了不影响原来那些程序的访问,需要在老服务器增加一个数据连接到新服务器,然后在老服务器上创建同义词SYNONYM。由于同义词采用和原表相同的名称,这样就保证了原来的访问程序不变。
CREATE SYNONYM TB_EVT_DLV_QITA FOR TB_EVT_DLV_QITA@DATALINK_G9;迁移存储过程时如果不知道需要哪些表格,可以先使用PL/SQL Developer编译,系统会跳到不存在的表名处,复制此表名,替换下面语句中的表名创建表即可,反复操作就可以创建所有缺失的表:
create table tb_city_zd tablespace emsdata as select * from tb_city_zd@dlink_g7;
上面语句简便的同时将所有的数据也复制过来,如果不需要数据或者需要部分数据,可以加上查询条件,例如:
create table tb_city_zd tablespace emsdata as select * from tb_city_zd@dlink_g7 where 1=0;
create table tb_city_zd tablespace emsdata as select * from tb_city_zd@dlink_g7 where prov_name='安徽';