运行 来自 MariaDB on Oracle 的查询
Run query from MariaDB on Oracle
我有 MariaDB 和 Oracle 数据库。我已经在两者之间设置了 ODBC Connect,这样我就可以从 MariaDB 访问 Oracle。
我可以从 MariaDB 中执行以下操作:
CREATE TABLE oracopy ENGINE=connect TABLE_TYPE=ODBC tabname='testtab' CONNECTION='DSN=ORCL';
这会在本地创建一个 table。
然而,我真正想做的是 运行 对远程 Oracle 的查询和 return MariaDB 会话的结果。
查询将是特定于 Oracle 的,即可能包含像 DECODE 这样的 ORACLE 函数。此外,该查询还可以包含一个 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 是否有 "run this query on XXX remote database".
考虑使用源定义参数 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;"
我有 MariaDB 和 Oracle 数据库。我已经在两者之间设置了 ODBC Connect,这样我就可以从 MariaDB 访问 Oracle。
我可以从 MariaDB 中执行以下操作:
CREATE TABLE oracopy ENGINE=connect TABLE_TYPE=ODBC tabname='testtab' CONNECTION='DSN=ORCL';
这会在本地创建一个 table。
然而,我真正想做的是 运行 对远程 Oracle 的查询和 return MariaDB 会话的结果。
查询将是特定于 Oracle 的,即可能包含像 DECODE 这样的 ORACLE 函数。此外,该查询还可以包含一个 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 是否有 "run this query on XXX remote database".
考虑使用源定义参数 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;"