在数据库“LOCAL”模式“USERS”上,我有一个表“Accounts”。
在数据库“REMOTE”模式“USERS”上,我有相同的表“Accounts”。
LOCAL.USERS.Accounts 表包含一个插入/更新/删除后触发器,旨在将任何 LOCAL.USERS.Accounts 编辑应用于 REMOTE.USERS.Accounts 表;保持数据同步。
LOCAL.USERS 有一个到 REMOTE 的公共数据库链接(未指定
IDENTIFY AS
)。
当我直接更新 LOCAL.USERS.Account 时,我的更改会立即反映在 REMOTE.USERS.Accounts 上 - 触发器按预期工作。
但是,当我尝试使用本地模式 ACTORS 中的包来更新 LOCAL.USERS.Account 时,出现错误:
ORA-01017:用户名/密码无效;登录被拒绝 ORA-02063: 来自远程的前一行
REMOTE 数据库没有 ACTORS 模式,我认为这是问题的根源。
从 REMOTE 的角度来看,我如何确定正在尝试连接哪个模式?如何强制触发器将编辑应用到 REMOTE 作为 USERS 架构而不是 ACTORS 架构?
在 LOCAL USERS 模式中使用
IDENTIFY AS USERS
子句创建私有数据库链接,强制触发器以 USERS(有帐户)而非 ACTORS(在远程数据库上没有帐户)的身份连接到 REMOTE 数据库).