oracle objid 自加,oracle 创建dblink,传送数据

最近遇到个需求,需要将某个库的短信数据传送到短信中心的库中

1、给本数据库创建dblink连接

createpublicdatabaselinkpms_dblinkconnecttomsgp_itwgidentifiedbymsgp_itwg_2014

using'(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=TCP)(HOST=

136.160.41.198)(PORT=1521))

)

(CONNECT_DATA=

(SERVICE_NAME=msgp)

)

)';

136.160.41.198----目标数据库地址

msgp--------目标数据库实例

msgp_itwg -----目标数据库用户

msgp_itwg_2014------目标数据库用户密码

创建完成验证下:SELECT * FROM intf.PUBLIC_INTF_DATA@pms_dblink;

能执行成功就表示创建成功,创建语句的含义是,利用msgp_itwg用户创建一个dblink,然后通过这个dblink访问inf用户下的表数据

2、写存储过程

有两个存储过程,一个是查本地数据,一个是插目标数据库

CREATE OR REPLACE PROCEDURE init_sms_to_msgp is

t_guid varchar2(32);

t_staffName varchar2(20);

t_objID number(16);

t_smsCnt number(9);

is_send number(9);

t_start_time varchar(100);

t_end_time varchar(100);

cursor c_itsm is select note_id,note,obj_nbr,staff_id,create_date from issu_note_listing where deal_flag=0;

BEGIN

For itsm In c_itsm Loop

select sys_guid() into t_guid from dual;

send_sms(t_guid,itsm.obj_nbr,itsm.note);

update issu_note_listing set deal_flag=1 where note_id=itsm.note_id;

end loop;

END init_sms_to_msgp;

插入:

CREATEORREPLACEPROCEDUREsend_sms(t_guidvarchar2,sms_phonevarchar2,sms_notevarchar2)is

BEGIN

insertintointf.PUBLIC_INTF_DATA@db_msgp(system_id,other_sys_order_id,acc_nbr,acc_nbr_type_cd,serv_spec_id,contact_info,msg_content,send_date,insert_date,deal_flag)values

('129',t_guid,sms_phone,'101200074',sms_note,sysdate,1);

commit;

ENDsend_sms;

3、设置job

begin

sys.dbms_job.submit(job=>:job,

what=>'init_sms_to_msgp;',

next_date=>to_date('30-06-201714:57:57','dd-mm-yyyyhh24:mi:ss'),

interval=>'sysdate+1/1440');//一分钟执行一次

commit;

end;

/

完成了。

总结

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值