在远程数据库中执行 DML 是否取消实例化本地数据库中的所有包

Does Performing DML in Remote DB de-instantiates all packages in the local DB

我在本地站点有一个包变量,我正在初始化一个值,经过大量处理后,我调用了一个远程数据库过程,该过程执行一些 DML.I 可以找到依赖于我的包变量的处理initialized is not working.But 如果我不调用远程数据库过程,相同的处理正在工作

而且本地和远程数据库都是oracle

例如在本地会话中

CREATE OR REPLACE PACKAGE LOCAL_PKG
AS
PKG_VARIABLE NUMBER(1):=0;
--other local statements
END;

现在我在本地过程中将此变量的值设置为不同的值

LOCAL_PKG.PKG_VARIABLE:=1;

然后我调用我的远程过程

IF NOT REMOTE_PROC@REMOTEDB THEN-- this performs DML in remote database
 --some local statements 
END IF;
-- other local statments

-- other local processing

现在在本地数据库中我检查这个条件然后做一些事情processing.It是这部分不工作

IF LOCAL_PKG.PKG_VARIABLE=1
THEN
-- do some processing 
ELSE
-- do nothing
END IF;

所以我的问题是在远程数据库中调用 DML 是否会取消实例化本地会话中的所有包????

在远程数据库中调用 DML 不会在我的本地会话中取消实例化任何包变量

局部变量在下面的代码--do some processing中被重置

IF LOCAL_PKG.PKG_VARIABLE=1
THEN
-- do some processing 
ELSE
-- do nothing
END IF;