通过两个数据库链接使用PL/SQL API



有一个Oracle数据库(版本8)充当PL/SQL API,提供对该数据库中不同过程和表的访问
我有另一个Oracle数据库(10g版本),它通过数据库链接使用这些过程和表
我将我的数据库升级到12g版本,但显然在版本8和12g之间使用数据库链接存在兼容性问题。因此,我们制定了一个计划,用Oracle 10g版本创建第三个数据库,并将其作为"代理"放置在8到12g之间
建立了从v12g到v10g以及从v10g到v8的数据库链接。在"proxy"(v10g)数据库中为v8数据库中的表和过程创建了同义词。我可以从v12g:中制作一个标准的SELECT子句

    select column from table@dblink;

但将其放入匿名区块:

    declare
     sVar varchar2(200);
    begin
      select column into sVar from table@dblink;
      dbms_output.put_line(sVar);
    end;

给出错误:"PL/SQL:ORA-00980:同义词翻译不再有效"。有没有一种方法可以让我通过v10g从v12g访问v8过程和表——也就是说通过2个数据库链接?

假设有一个主要障碍阻碍了Oracle 8(8.0/8.1.x)数据库的升级,我认为您需要忘记数据库链接。即使你花了很多精力让它工作更长一点,你也不能保证它会在下一个补丁中工作。

我会考虑围绕Oracle8功能构建一个Java包装器。12c数据库只是简单地调用Java层(甚至可能作为Java存储过程)。

如果必须使用数据库链接,可以尝试查看DG4ODBC,这样您就可以将Oracle8DB视为通用的"外部"数据库,而不是OracleDB。

相关内容

  • 没有找到相关文章

最新更新