ORA-02070:数据库在此上下文中不支持

Viv*_*vek 4 oracle dblink

我有一个查询

INSERT INTO sid_rem@dev_db
(sid)
select sid from v$session
Run Code Online (Sandbox Code Playgroud)

现在,当我执行此查询时,我得到了 ORA-02070: database does not support in this context

仅当我将数据从v $ session插入某个远程数据库时才会发生此错误.它适用于任何其他表.

任何人都知道为什么这个问题和任何解决方法?

Flo*_*ita 7

使用gv$session而不是v$session:

INSERT INTO sid_rem@dev_db(sid)
select sid from gv$session;
Run Code Online (Sandbox Code Playgroud)

gv $ views是全局视图,也就是说,它们不限于一个节点(实例),而是查看整个数据库(RAC).v $ views是gv $的子视图.

在互联网上搜索我发现这与分布式交易有关.

线程在ora-code.com上

  • `v $ session`本质上是`gv $ session`的视图,但仅限于当前实例,在非RAC环境中应该是相同的.这个限制是使用`where inst_id = USERENV('Instance')`子句完成的,就像你链接到的线程一样,它是导致ORA-02070的那个. (2认同)