如何解决 ORA-22992:无法使用从远程表中选择的 LOB 定位器?

How to solve ORA-22992: cannot use LOB locators selected from remote tables?

我创建了一个数据库 link 并且我创建了远程 table 的本地同义词。我还创建了一个本地视图,其中 selects 来自同义词的数据。 blob 列已添加到远程 table,我无法在本地 select 它。

我的代码是这样的:

CREATE OR REPLACE VIEW LOCAL_USER.VIEW AS (

SELECT
WHATEVER,
BINARY_CONTENT
FROM LOCAL_USER.LOCAL_TABLE

UNION  ALL 

SELECT
WHATEVER,
BINARY_CONTENT
FROM  LOCAL_USER.SYNONYM
);

这是错误:

ORA-22992: cannot use LOB locators selected from remote tables

我在网上查了一下,但是建议的解决方案对我不起作用,因为我使用的是同义词,它需要始终与远程 table 保持同步。

有人知道可以做些什么吗?

根据Documentation,不支持这种 LOB 用法。

Oracle Database has limited support for remote LOBs and ORA-22992 errors can occur when remote LOBs are used in ways that are not supported.

根据上述文档,使用远程 LOB 创建视图不在支持的操作列表中。

在 Oracle 支持上,我找到了一份针对旧版本数据库 (12.1) 的文档 796282.1,其中包含解决方法,但该解决方法似乎非常有限,因为它包括将 CLOB/BLOB 转换为 VARCHAR2/RAW通过支持功能,然后远程访问它。这当然会增加 4000 字节的 VARCHAR2 和 2000 字节的 RAW 的限制,这可能是非常有限的。