Oracle中把一张表查询结果插入到另一张表中

时间:2021-12-30 20:52:49

 


一、Oracle数据库中,把一张表的查询结果直接生成并导入一张新表中。
 
例如:现有只有A表,查询A表,并且把结果导入B表中。使用如下SQL语句:
Sql代码 
create table B as select * from A  
 
二、Oracle数据库中支持把查询结果导入到另外一张表中。
 
例如:有两个表A和B
1)如果两个表的表结构是否相同,但要插入的字段类型相同:
 
(1)把A表的全部字段数据插入到B表中:
Sql代码 
insert into B select * from A;  
 
(2)把A表中某些字段的数据插入B表中:
Sql代码 
insert into B(字段名)(select 字段名 from A)  
 
2)如果不在同一个schema下在表名前加上schema,例如有schema X和Y:
 
Sql代码 
insert into Y.B select * from X.A

 

例如:

 
insert into WEED_TT_HO1MRM (HO1CPPK, HO1CPCD, HO1OFPK, HO1OFCD, HO1DSNO, 
   HO1DSGNO,HO1CSUK, HO1KTCD, HO1TRCD, HO1RCKB1, HO1DTSB1, 
   HO1SRDT, HO1STRC, HO1STST, HO1CHCN, HO1DPGS, HO1SSKS, HO1BRAC1,
   HO1RCKB2, HO1DTSB2, HO1DPNO, HO1CPCD2, HO1DSMC2, HO1BNRC, HO1DENK,
   HO1SHCD, HO1SYNK, HO1STRC2, HO1STST2, HO1SSNA, HO1SMNA, HO1STNM,
   HO1STNM2, HO1STEL, HO1SYTM, HO1TAGS, HO1STRC3, HO1RCKB3, HO1DTSB3,
   HO1DRAN1, HO1DRAN3, HO1ERAN1, HO1ERAN3, HO1FRAN, HO1HRAN, HO1CECD, 
   HO1TDKB, HO1NHKB, HO1PRBCD, HO1CENK, HO1BRAC2, HO1OPSN, HO1ALL) 
  select
  '9000000001',
 '9000000001', 
 '90000000010000000001', 
 '0000000001', HO1DSNO, HO1DSGNO,HO1CSUK, HO1KTCD, HO1TRCD,
 HO1RCKB1, HO1DTSB1, HO1SRDT, HO1STRC, HO1STST, HO1CHCN, 
 HO1DPGS, HO1SSKS, HO1BRAC1, HO1RCKB2, HO1DTSB2, HO1DPNO,
  HO1CPCD2, HO1DSMC2, HO1BNRC, HO1DENK, HO1SHCD, HO1SYNK, HO1STRC2,
   HO1STST2, HO1SSNA, HO1SMNA, HO1STNM, HO1STNM2, HO1STEL, HO1SYTM,
    HO1TAGS, HO1STRC3, HO1RCKB3, HO1DTSB3, HO1DRAN1, HO1DRAN3, HO1ERAN1, 
    HO1ERAN3, HO1FRAN, HO1HRAN, HO1CECD, HO1TDKB, HO1NHKB, HO1PRBCD, HO1CENK,
     HO1BRAC2, HO1OPSN, HO1ALL from WEED_TT_HO1MRM