我在本地站点中有一个包变量,我正在初始化一个值,经过大量处理后,我调用了一个远程db过程,该过程执行一些DML。我可以发现,依赖于我初始化的包变量的处理不起作用。但如果我不调用远程db过程的话,同样的处理也会起作用
本地和远程数据库都是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
现在在本地数据库中,我检查了这个条件,然后进行了一些处理
IF LOCAL_PKG.PKG_VARIABLE=1
THEN
-- do some processing
ELSE
-- do nothing
END IF;
所以我的问题是,在远程数据库中调用DML是否会取消本地会话中所有包的实例化????