dblink两个库间导数据

sys建立dblink连接,在连个库间导数据
sqlplus "/as sysdba"
---创建dblink连接
drop PUBLIC DATABASE LINK FAST_12;
  CREATE PUBLIC DATABASE LINK FAST_12  
  CONNECT TO ZHEJIANG IDENTIFIED BY "zj*2016"  
  USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.12)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = FAST) ) )';
----测试
select * from tab@fast_12;
conn zhejiang/"zj*2016"@192.168.1.12:1521/fast
----导数据
CREATE TABLE LTE_DT_RAWDATA  AS SELECT * FROM LTE_DT_RAWDATA @FAST_12 WHERE 1=1;
以下是一个简单的Oracle存储过程,使用DBLink跨库同步数据: ```sql CREATE OR REPLACE PROCEDURE SYNC_DATA_ACROSS_DB ( db_link_name IN VARCHAR2, source_table_name IN VARCHAR2, destination_table_name IN VARCHAR2 ) AS BEGIN -- 在目标数据库中创建一个临时表 EXECUTE IMMEDIATE 'CREATE TABLE temp_table AS SELECT * FROM ' || destination_table_name || ' WHERE 1=0'; -- 将源数据库中的数据插入到临时表中 EXECUTE IMMEDIATE 'INSERT INTO temp_table SELECT * FROM ' || source_table_name || '@' || db_link_name; -- 删除目标数据库中的旧数据 EXECUTE IMMEDIATE 'DELETE FROM ' || destination_table_name; -- 将临时表中的数据插入到目标数据库中 EXECUTE IMMEDIATE 'INSERT INTO ' || destination_table_name || ' SELECT * FROM temp_table'; -- 删除临时表 EXECUTE IMMEDIATE 'DROP TABLE temp_table'; COMMIT; END; / ``` 这个存储过程接受三个参数,分别是DBLink的名称,源表的名称和目标表的名称。它首先在目标数据库中创建一个临时表,然后将源数据库中的数据插入到这个临时表中。接着,它删除目标数据库中的旧数据,并将临时表中的数据插入到目标数据库中。最后,它删除临时表并提交事务。 要使用这个存储过程,只需要调用它并传入适当的参数: ```sql BEGIN SYNC_DATA_ACROSS_DB('DBLINK_NAME', 'SOURCE_TABLE_NAME', 'DESTINATION_TABLE_NAME'); END; ``` 其中,DBLink的名称是你在源数据库中创建的DBLink的名称,源表的名称是你想要同步的表的名称,目标表的名称是你想要将数据同步到的表的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值