我有一个存储过程,可以使用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;