oracle如何向一张表导入另一张表的部分数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle如何向一张表导入另一张表的部分数据相关的知识,希望对你有一定的参考价值。

比方old 和new 表 表结构不同的,都有对方没有的列 old表很大只需要一部分列,还有一些限定条件 如何写啊

实现的方法和详细的操作步骤如下:

1、第一步,如果要从Oracle实例orcl导出多个dmp文件表,则在打开cmd窗口后,首先设置环境变量以将Oracle实例切换为orcl(设置ORACLE_SID
 = orcl),然后登录到sqlplus
 ,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,可以使用sql语句“select * from dba_directories”以查看当前实例下可用的dmp导出目录。
 导出dmp文件时,可以选择其中之一,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,退出sqlplus并使用命令“expdp”导出需要的数据库表dmp文件,如下图所示,然后进入下一步。

4、最后,完成上述步骤后,就可以将该文件导入实例orcl中的另一个用户,如下图所示。这样,问题就解决了。

参考技术A

1、如果我们要从Oracle实例orcl导出几个dmp文件表,那么在打开cmd窗口之后,首先设置环境变量以将Oracle实例切换到orcl(设置ORACLE_SID = orcl),然后登录到sqlplus。

2、登录到sqlplus后,您可以使用sql语句:select * from dba_directories以查看当前实例下可用的dmp导出目录。我们可以在导出dmp文件时选择其中一个。

3、退出sqlplus并使用命令expdp导出我们需要的数据库表dmp文件:expdp EVGIS / EVgis_123 $ @ orcl tables = EV_VERSION,EV_VERSIONFILE directory = DATA_PUMP_DIR dumpfile = test.dmp logfile = test.log。 EVGIS / EVgis_123 $ @ orcl表示用户名/密码@实例名称。

4、导出dmp文件后,我们可以将文件导入实例orcl中的另一个用户。

导入命令:impdp学生/学生目录= DATA_PUMP_DIR table_exists_action = replace dumpfile = test.dmp logfile = test.log remap_tablespace = GIS:Student remap_schema = EVGIS。

Remap_tablespace表示表所在的表空间更改,冒号前面的原始表空间名称,冒号中的目标表空间名称; remap_schema表示更改后的表的用户,冒号前面的原始用户名,冒号后是目标用户名。

参考技术B

oracle数据库实现一张表的数据导入到另外一个数据库的表中的方法有很多,在这介绍两个。

第一种,把oracle查询的数据导出为sql文件,执行sql文件里的insert语句,如下:

第一步,导出sql文件:

第二步:用PL/Sql Developer 连接另外一个oracle数据库,打开这个sql文件,全选所有insert语句,执行所有插入sql语句即可:

这种方法试用于插入大多数的数据库,无论是oracle数据库还是sql server数据库都可执行这个sql文件(全是insert语句)。

缺点是:当数据量大的时候,oracle数据库执行这些insert语句,效率会很低。

于是,接下来介绍第二种导入数据的方法,即:导出/导入CSV文件。

第一步,在Pl/Sql Developer查询窗口查询数据,导出成CSV文件:

导出的csv文件如下图:

第二步,把这个csv文件里的数据导入到另外一个数据库里,

用PL/Sql Developer 连接另外一个oracle数据库,

菜单-工具-文本导入器:

第三步,点击“文本导入器”窗口里,点击导入按钮:

第四步,选择导入CSV文件:

导入后,界面如下:

第五步,选择“到Oracle的数据”选项卡,点击下拉框选择“所有者”,点击下拉框选择要导入的表,选择“覆盖重复”,点击“导入”按钮:

导入成功入下图:

点击“关闭“按钮,新建查询窗口,查询数据,验证导入是否成功:

总结:如果是oracle数据库,推荐使用第二种方法,比第一种方法的效率高很多。

参考技术C

需要用insert into ... select... where  语句来执行:

如原表中有如下数据:

emp表中有如下数据,其中要将empno为7369的empno和ename插入到test表中。

可以用如下语句:

insert into test (id,name) select empno,ename from emp where empno=7369;
commit;

结果如下,其中红框部分为新加的数据:

参考技术D 不知道你具体想干什么,如果只是简单的插入数据的话,用
insert into new(列名1,列名2)
select 列1,列2
from old
where 限定条件
就可以了

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

一、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 

 
————————————————
版权声明:本文为CSDN博主「夏林林」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xialinlin8520/article/details/8745573

以上是关于oracle如何向一张表导入另一张表的部分数据的主要内容,如果未能解决你的问题,请参考以下文章

oracle 将一张表的数据插入到另一张表

oracle的数据库中怎么将一张表中数据插入另一张表,两张表都存在

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

在oracle中怎么把一张表的数据插入到另一张表中

sql如何查询出一张表的的某个字段数据更换成另一张表的字段数据

oracle 一张表的数据,分成两种相反地情况,如何同时两部分数据的和该数据的数量