在存储过程中捕获Oracle连接问题

时间:2019-07-08 15:04:44

标签: stored-procedures oracle12c disconnection

我有一个存储过程,可以使用DB Link从另一个数据库中获取数据。 有时会出现连接问题。似乎是暂时的网络故障,当它遇到网络故障时,它会停止处理但不会断开连接。

是否有办法捕获并断开挂起的会话?

这是获取数据的存储过程的一部分:

V_SQLEXP := 'INSERT INTO CRITERIA_STAGING (COL1, COL2, COLn) 
  SELECT COL1, COL2, COLn FROM BLAH.CRITERIA_T@TCMAN0 WHERE ' || V_SITESTATUS || ' = 1';
  EXECUTE IMMEDIATE V_SQLEXP;
  COMMIT;
  LVIPROCESSED:= 1;
  EXCEPTION WHEN OTHERS THEN
    LVIPROCESSED:= 0; -- FETCH FAILED
    PKGIDCHANDLEERROR.USPHANDLEERROR('USPPICK_ITEM:SAFETCH', LVIERRORCODE);
    DBMS_LOCK.SLEEP(LVIFETCHRETRYSLEEP);
    GOTO FETCH_FROM_OTHERDB;

0 个答案:

没有答案