之前我已经完成了这个,我们无法访问托管要处理的数据的实际数据库,以保存标准端口1521侦听器访问权限 . 当时的Apex对于组织而言是新的,DBA也将使用他们的数据库服务器作为网络服务器网关也有一个伏都教禁忌 . 您可以使用安装了APEX的数据库实例作为“中间层”或应用服务器,并执行以下步骤:
在10g数据库上设置一个可通过dblink远程访问的帐户 .
在安装了XE的工作站上为您的10g数据库表设置dblinks,使用(1)中设置的10g数据库的帐户和连接信息 . 请注意,您可能必须更新TNS名称文件或在dblink本身中明确指出主机/网络设置 .
为了简化编写apex项目的简洁性和简单性,请为所有dblinked对象设置同义词(即table1 @ tablelink的table1),这样就不会直接在顶点代码中引用dblinks . 如果您坚持这一点,稍后进行更改将会更容易 .
而已 . 一个附带条件是,您需要知道在使用dblink时,LOB不能与APEX驱动的DML操作的开箱即用功能一起使用 . 这可能随最新版本而改变 . 您可以考虑的一种解决方法是尝试使用存储过程将LOB数据作为输入参数传递,该输入参数将为您执行DML操作 .
否则,这种方法很有效 . 我实现此模型的地方有几个 生产环境 级应用程序,一个测试和一个开发层,所有这些都使用与实际数据源分开托管APEX的服务器 . 我们使用了Oracle Standard Edition One(用于支持),但Oracle XE应该也可以使用,因为APEX是Oracle版本之间的共同平台 .