甲骨文对整合存有疑虑

时间:2015-07-30 19:27:17

标签: database oracle stored-procedures oracle11g

我正在启动一个项目,其中一个要求是数据库之间的集成。

我已经完成了与API,WSDL的集成,但从未在数据库之间进行集成(所有oracle)。

功能设计必须做的是:根据我在我的应用程序中的规则,在另一个数据库中执行一个过程,用我的应用程序数据填充参数。 sp将在表中(在另一个数据库中)记录信息并在那里创建一个票据。

所以我的问题是:是否可以通过我的oracle实例在另一个oracle实例中运行一个过程?

1 个答案:

答案 0 :(得分:0)

不确定。您只需要在数据库之间create a database link

CREATE DATABASE LINK dblink_name
  <<parameters>>

然后您可以在远程数据库中执行该过程

BEGIN
  schema_in_remote_db.procedure_in_remote_db@dblink_name( <<parameters>> );
END;

然而,作为一般的架构问题,我通常不会有应用程序进行远程过程调用。通常,即使远程数据库关闭或者它们之间的网络连接断开,您也希望您正在构建的应用程序可用。否则,您的可用性会大大降低。您还强制Oracle使用两阶段提交和分布式事务,这可能是一个相当大的开销。

通常,您设计系统以便您写入本地表或队列,并且异步运行单独的作业以调用远程过程(或者目标数据库中的单独作业会轮询您的表格。 ;写入并在本地调用该过程。