3

我知道这很可能是不可能的。但是我仍然会在这里详细说明我的问题,如果有人有类似我需要的东西,那就太好了。

我有一个托管在 Windows 服务器上的文件验证系统。该系统包含一个元数据表,前端文件验证应用程序使用该表来验证各种类型的数据。现在,它迎合了与元数据表托管在同一数据库中的单个应用程序。

问题是我希望这个系统具有可扩展性,以便它可以验证各种应用程序的文件,其中一些应用程序存在于不同的数据库中。由于我的元数据表中的某些检查基于 Pl/SQL,因此除非文件验证系统和应用程序数据库的数据库相同,否则我无法运行这些检查。有没有办法一次在多个数据库之间共享一个表?如果不是,那么可能的解决方法是什么?

4

2 回答 2

2

如果您想像访问一个表一样访问多个数据库上的多个表,那么您必须使用使用数据库链接的视图。您应该首先了解数据库链接,然后创建视图应该不是问题。

数据库链接允许您访问另一个数据库表,就像访问同一数据库上的表一样。创建数据库链接后,您所做的就是将 添加@mydblink到表名中。例子

CREATE DATABASE LINK mydblink 
CONNECT TO user IDENTIFIED BY password
USING 'name_of_other_db'

SELECT * FROM sometable@mydblink

它运行良好,甚至远程和本地数据库中的更新都有两阶段提交。根据您的设置,还有更多需要了解的信息,但您可以在 oracle 文档中阅读所有相关信息。我曾在一个较大的项目中广泛使用数据库链接,这是您想要做的正确方法。

http://docs.oracle.com/cd/E11882_01/server.112/e25494/ds_concepts002.htm#ADMIN12083

http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_5005.htm

这是我在谷歌搜索后发现的一个链接,告诉我如何构建一个访问多个数据库中数据的视图,并提供一些有关预期性能的信息

http://www.dba-oracle.com/t_sql_dblink_performance.htm

于 2013-04-26T20:44:03.747 回答
2

Oracle 有 DBLink。查看文档。

http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm

于 2013-04-26T17:59:12.507 回答