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

Oracle 如何解决ORA-22992:无法使用从远程表中选择的LOB定位器?,oracle,dblink,Oracle,Dblink,我创建了一个DB链接,并创建了远程表的本地同义词。我还创建了一个从同义词中选择数据的本地视图。一个blob列已添加到远程表中,我无法在本地选择它 我的代码是这样的: 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

我创建了一个DB链接,并创建了远程表的本地同义词。我还创建了一个从同义词中选择数据的本地视图。一个blob列已添加到远程表中,我无法在本地选择它

我的代码是这样的:

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
我在网上查找了它,但建议的解决方案对我来说不起作用,因为我使用的是同义词,它需要始终与远程表保持同步

有人知道该怎么做吗?

根据,不支持使用LOB

Oracle数据库对远程LOB和ORA-22992的支持有限 当远程LOB的使用方式不正确时,可能会发生错误 支持

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


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

您使用的Oracle版本是什么?@pmdba Oracle/database:12.2.0.1-ee2个数据库?@pmdba yes。目前我在本地测试这个,所以远程数据库也在我的机器上。没有联合的远程查询是否有效?使用远程表名而不使用同义词怎么样?这也不起作用。我甚至尝试直接从subselect中的db链接中选择二进制内容。如果直接选择不是视图的create语句的一部分,则可以直接选择。