我有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远程数据库上运行此查询”。
答案 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;"