有一个 Oracle 数据库(版本 8)充当 PL/SQL API,提供对该数据库中不同过程和表的访问。
我有另一个 Oracle 数据库(版本 10g),它通过数据库链接使用这些过程和表。
我将数据库升级到版本 12g,但显然使用版本 8 和 12g 之间的数据库链接存在兼容性问题。所以想出了一个计划,用 Oracle 10g 版本创建第三个数据库,并将它放在 8 到 12g 之间作为“代理”。
制作了从 v12g 到 v10g 以及从 v10g 到 v8 的数据库链接。在“代理”(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 个数据库链接?