在远程数据库中执行 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;
我在本地站点有一个包变量,我正在初始化一个值,经过大量处理后,我调用了一个远程数据库过程,该过程执行一些 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;