首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle:事务前激活DBLINK

Oracle:事务前激活DBLINK
EN

Stack Overflow用户
提问于 2018-06-28 10:30:37
回答 1查看 1.3K关注 0票数 1

考虑两个系统:A(源系统)和B (收件人系统)我们有一个存储的Oracle过程从A到B上传一些细节,我们有一个DBLINK来插入A到B的数据,我们收到了DBLINK错误。

ORA-01012:未登录ORA-02063: A_B_DBLINKORA-06512的前一行

根据我的理解,如果DBLINK不活动超过30分钟(如系统B中所配置的那样),而系统A试图连接到B,则会引发此错误。

为了解决这一问题,我们考虑采取以下办法:

代码语言:javascript
复制
UPLOAD PROCEDURE
begin
if A_B_DBLINK='Active' then
    enter procedure;
    upload data;
else
    //attempt to trigger DBLINK as active
    //calling UPLOAD PROCEDURE
end;

我需要帮助来实现这一点,我目前正在使用select * from dual@A_B_DBLINK;测试连接是否处于活动状态,但不能触发它(无法测试失败场景)。请指引我前进的道路。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-06-28 10:35:47

代码语言:javascript
复制
DECLARE
   v_my_value        NUMBER := NULL;
   v_dblink_status   VARCHAR2 (10) := 'INACTIVE';
BEGIN
   SELECT COUNT (1) INTO v_my_value FROM DUAL@A_B_DBLINK;

   v_dblink_status := 'ACTIVE';
EXCEPTION
   WHEN OTHERS
   THEN
      BEGIN
         v_dblink_status := 'INACTIVE';
      END;
END;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51080631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档