oracle通过dblink,oracle通过dblink抽取数据处理

就是通过select * from user_sequence和select * from all_tables 来获取sequence和table的名字进行拼串

最怕的就是当前账号的权限不够。还好是测试环境,我能随便折腾

create or replace package extraction_data is

-- Author : ADMINISTRATOR

-- Created : 2010-12-15 下午 03:36:28

-- Purpose : 抽取数据

Cursor TNAME is SELECT table_name AS table_name FROM all_tables@TB.REGRESS.RDBMS.DEV.US.ORACLE.COM where owner =upper('tieba');

PROCEDURE EXT_DATA;

PROCEDURE EXT_SEQ;

end extraction_data;

/

create or replace package body extraction_data is

PROCEDURE EXT_DATA IS

BEGIN

FOR T IN TNAME LOOP

/* dbms_output.put_line('执行insert过程'||T.table_name);*/

--执行表的删除操作,防止重复插入数据

begin

EXECUTE IMMEDIATE 'drop table '||T.table_name ;

EXCEPTION WHEN OTHERS THEN NULL;

end;

--输出要执行的sql

dbms_output.put_line('create table tieba.'||T.table_name||' as select * from '||T.table_name||'@TB.REGRESS.RDBMS.DEV.US.ORACLE.COM');

dbms_output.put_line('commit;');

--将远程的表的数据拿到本地,可能执行不了呀

/*EXECUTE IMMEDIATE 'create table tieba.'||T.table_name||' as select * from '||T.table_name||'@TB.REGRESS.RDBMS.DEV.US.ORACLE.COM';*/

END LOOP;

END EXT_DATA;

--此过程没有成功执行。如果需要可以拼装sequence串

PROCEDURE EXT_SEQ IS

BEGIN

-- Create sequence

--create sequence ADMIN_MESSAGE_SEQ minvalue 1 maxvalue 999999999 start with 100000 increment by 1 cache 20;

--select * from user_sequence;

FOR T IN (select * from user_sequences@TB.REGRESS.RDBMS.DEV.US.ORACLE.COM) LOOP

/* dbms_output.put_line('执行insert过程'||T.table_name);*/

--执行表的删除操作,防止重复插入数据

begin

EXECUTE IMMEDIATE 'drop sequence '||T.sequence_name ;

EXCEPTION WHEN OTHERS THEN NULL;

end;

--输出要执行的sql

dbms_output.put_line('create sequence tieba.'||T.sequence_name||' minvalue 1 maxvalue 999999999 start with '||T.LAST_NUMBER||' increment by 1 cache 20;');

/* EXECUTE IMMEDIATE 'create sequence tieba.'||T.sequence_name||' minvalue 1 maxvalue 999999999 start with '||T.LAST_NUMBER||' increment by 1 cache 20;';*/

END LOOP;

dbms_output.put_line('commit;');

END EXT_SEQ;

end extraction_data;

/

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值