我们正在使用PL/SQL编写一些接口程序,通过使用另一个Oracle数据库作为主机,在几个Oracle数据库之间传输数据。(例如:hr -> host -> finance)
这些传输是通过db_links完成的。
这些传输是通过db_links完成的。
insert into schema.tablname@dblink1 select * from schema.tablename@dblink2;
具体情况可能更加复杂,包括多个表和转换等,但这是一个基本的概念。
我们一直在讨论以下哪种方法应该使用:
- 在代码中到处引用“
schema.tablename@dblink
” 创建公共或私有同义词“
create synonym tablename for schema.tablename@dblink
”在对象上创建视图“
create view tablename as select * from schema.tablename@dblink
”
还有其他选项吗? 有没有任何一种方法比其他方法更好?
注意:每个级别(dev/test/prod)的dblink名称都是标准化的,因此dblink“server1”会连接到dev主机上的开发服务器和测试主机上的测试服务器等。
任何表名都不应存在于多个服务器上。