.procedure 创建和删除 dblink(flag)
如果传递 0 然后创建
如果通过 1 然后检查
如果通过 2 然后下降
立即执行'创建数据库链接DBLINK_' || cur.SYSTEM_NAME || ' 使用 '''|| 连接到由 b00wnerk0j 标识的 BOOWNER cur.IP_ADDRESS ||':1521/XE''';
dbms_output.put_line('select 1 from dual@DBLINK_'||cur.SYSTEM_NAME||'');
-- 立即执行 'select 1 from dual@DBLINK_'||cur.SYSTEM_NAME||'' 进入 vData;
-- dbms_output.put_line(vData);
-- 如果 (vData =1) 那么
DBMS_OUTPUT.put_line('更新执行中..!');
别的
-- DBMS_OUTPUT.put_line('更新未执行..!');
- 万一;
FUNCTION store_Validate_DBLINK(alink IN VARCHAR2)
返回号码为
nCnt数;
vSql varchar2(32000);
BEGIN vSql := 'SELECT 1 FROM dual@'||alink; 立即执行 vSql 到 nCnt;返回 nCnt;当其他人返回 0 时出现异常;
END store_Validate_DBLINK;
2.程序开始
for j in (select distinct loc_idnt from KOJ_CLOCKINOUT_MISSING t where status = 0 order by loc_idnt) loop call dblink procedure(0);
调用 dblink 过程(1);for i in (select * from KOJ_CLOCKINOUT_MISSING t where status = 0 and t.loc_idnt = j.loc_idnt order by loc_idnt, day_dt) 循环
begin
执行立即'插入到 kojobj.KOJ_CLOCKINOUT_PULLED
select id_em, ts_em_tm_enr, id_str_rt, rc_em_tm_enr,
typ_cd_tm_enr, mod_flag, ts_crt_rcrd, ts_mdf_rcrd,
dc_dy_bsn, sysdate TS_WH_UPD_RCRD, 0
WH_RCRD_PRCD_FLAG from boowner.co_em_tm_enr@DBLINK_MIK20082 where ( trunc(TO_DATE(TO_CHAR(yy.ts_em_tm_enr, 'YYYY-MON-DD HH24: MI:SS'), 'YYYY-MON-DD HH24:MI:SS')) = i.day_dt 或 to_date(yy.dc_dy_bsn, 'YYYY-MM-DD') = i.day_dt) 和 yy.id_str_rt = i .posstore ; '; 结尾;
更新 KOJOBJ.KOJ_CLOCKINOUT_MISSING 设置状态 = 1 ,评论 =
'Data Pulled' -- 如果 ststus = 0 数据不可用
其中 poststore= i.posstore 和 day_dt = i.dat_dt ;
结束循环;调用 dblink 过程(2);-- 在末尾删除 db_link
end loop;
结尾;