考虑两个系统:A(源系统)和B (收件人系统)我们有一个存储的Oracle过程从A到B上传一些细节,我们有一个DBLINK来插入A到B的数据,我们收到了DBLINK错误。
ORA-01012:未登录ORA-02063: A_B_DBLINKORA-06512的前一行
根据我的理解,如果DBLINK不活动超过30分钟(如系统B中所配置的那样),而系统A试图连接到B,则会引发此错误。
为了解决这一问题,我们考虑采取以下办法:
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;测试连接是否处于活动状态,但不能触发它(无法测试失败场景)。请指引我前进的道路。
谢谢
发布于 2018-06-28 10:35:47
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;https://stackoverflow.com/questions/51080631
复制相似问题