在Oracle上从MariaDB运行查询

时间:2018-08-26 19:42:37

标签: sql oracle mariadb unixodbc

我有MariaDB和Oracle数据库。我已经在两者之间设置了ODBC Connect,以便可以从MariaDB访问Oracle。

我可以从MariaDB中执行以下操作:

CREATE TABLE oracopy ENGINE=connect TABLE_TYPE=ODBC tabname='testtab' CONNECTION='DSN=ORCL';

这将在本地创建一个表。

但是,我真正想做的是在远程Oracle上运行查询并将结果返回到MariaDB会话。

查询将是Oracle特殊的,即可能包含ORACLE函数(例如DECODE)。该查询还可以包含一个PLSQL函数调用,该调用将再次需要在Oracle上运行。例如:

SELECT t.id, DECODE( t.typ,'HH', 'Val 1', 'Val 2' ) tt,
       my_package.fn_test ( t.dob ) dob
FROM testtab t;

MariaDB是否有“在XXX远程数据库上运行此查询”。

1 个答案:

答案 0 :(得分:2)

考虑使用源定义参数 SRCDEF ,如docs所示。

CREATE TABLE oracopy ENGINE=connect TABLE_TYPE=ODBC CONNECTION="DSN=ORCL"
SRCDEF="SELECT t.id, DECODE( t.typ,'HH', 'Val 1', 'Val 2' ) tt,
               my_package.fn_test ( t.dob ) dob
        FROM testtab t;"