oracle 怎么快速把一个数据库其中一个表的内容插入到另一个数据库里面。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 怎么快速把一个数据库其中一个表的内容插入到另一个数据库里面。相关的知识,希望对你有一定的参考价值。
7月24日前的数据丢失了,现在才发现。之前的数据有备份的。想插入到现在的表里面。现在表里面有7月24日以后的数据的数据。怎么搞?求大神
1、先建立一个database link,将两个库连接起来语法:
CREATE DATABASE LINK 链接名 CONNECT TO 账户 IDENTIFIED BY 口令 USING 服务名;
例子:
create database link mylink connect to user_name identified by password using 'test01'
2、用insert into将test01表a的数据写入test表a
insert into [数据库名].[dbo].[表名] select * from [数据库名].[dbo].[表名]@mylink where 时间>'2013-07-24' 参考技术A 有2种解决方式,
1种是建立一个数据链接
create table t_b as select * from t_a@orcl_db;
2 直接通过 导出、导入解决 参考技术B 数据都在一个数据库的话,那就直接insert into table1 select * from table2 where 。。。时间条件。。 就可以了。
不再一个库的话。可以建dblink,然后同样。。 参考技术C create database link mylink1 connect to WMS_BEACN_NEW identified by aaaa using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.108)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SIDB108)
)
)'
select * from wms_user@mylink1;
insert into wms_user select * from wms_user@mylink1;
其中:
用户名:WMS_BEACN_NEW
密码:aaaa 参考技术D imp userid/pwd@sid file=bkfile tables=(tablename) ignore=y query=\"where datecol\<to_date\(\'2013-07-24\',\'yyyy-mm-dd hh24:mi:ss\'\) \"追问
query=\"where datecol\<to_date\(\'2013-07-24\',\'yyyy-mm-dd hh24:mi:ss\'\) \" 这一段具体 的什么意思。。打个比方 userID=SA 密码SA 备份数据库文件在D:/backup 要怎么写
追答这段就是取出7月24日前的数据
imp SA/SA@sid file=D:/backup/filename.dmp tables=(tablename) ignore=y query=\"where datecol\<to_date\(\'2013-07-24\',\'yyyy-mm-dd hh24:mi:ss\'\) \"
如果我要2013年1月1日到2013年7月24日的又要怎么取范围。datecol这个是不是要改的,改成我表里面想对应的字段。
追答imp SA/SA@sid file=D:/backup/filename.dmp tables=(tablename) ignore=y query=\"where datecol between to_date\(\'2013-01-01\',\'yyyy-mm-dd hh24:mi:ss\'\) and to_date\(\'2013-07-24\',\'yyyy-mm-dd hh24:mi:ss\'\) \"
本回答被提问者采纳以上是关于oracle 怎么快速把一个数据库其中一个表的内容插入到另一个数据库里面。的主要内容,如果未能解决你的问题,请参考以下文章
oracle某表的一个字段有多值,怎么把这值变成多行,其它数据为一样