如何解决 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 的限制,这可能是非常有限的。
我创建了一个数据库 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 的限制,这可能是非常有限的。