问题描述
我已经使用下面的查询创建了一个数据库链接,将12.1版本DB链接到12.2版本DB。由于12.1版本的Oracle DB不支持JSON。
我试图在DBLINK创建的数据库中执行JSON查询:
我也尝试在from子句中使用DBLINK,如下所示:
我收到以下错误:
请帮忙。
请注意: am在12.2版本DB上执行JSON查询,其中DB链接是使用源数据库 (12.1版本) 创建的。
CREATE DATABASE LINK dblink_SBX CONNECT TO SOURCEDB IDENTIFIED BY SOURCEDB USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = XYZ)(PORT = 1521)) ) (CONNECT_DATA = (SID= ABCD) ) )';
我试图在DBLINK创建的数据库中执行JSON查询:
select JSON_OBJECT
('EMPNO' VALUE EMP_ID)
from EMP;我也尝试在from子句中使用DBLINK,如下所示:
select JSON_OBJECT
('EMPNO' VALUE EMP_ID)
from EMP@dblink_SBX;我收到以下错误:
ORA-02063: preceding line from DBLINK_SBX 00907. 00000 - "missing right parenthesis" *Cause: *Action:
请帮忙。
请注意: am在12.2版本DB上执行JSON查询,其中DB链接是使用源数据库 (12.1版本) 创建的。
专家解答
您运行的查询必须是本地数据库上的有效语法。JSON_object是一个12.2的功能,所以:
即使在远程数据库上有效,也无法在12.1上使用。
根据你想做的事情,你可以通过以下方式解决这个问题:
-在包含您的查询的12.2数据库上创建函数
-通过DB链接调用函数
select JSON_OBJECT
('EMPNO' VALUE EMP_ID)
from EMP@dblink_SBX;即使在远程数据库上有效,也无法在12.1上使用。
根据你想做的事情,你可以通过以下方式解决这个问题:
-在包含您的查询的12.2数据库上创建函数
-通过DB链接调用函数
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




