OracleXE的APEX可以访问同一服务器上的另一个Oracle数据库(10g),还是受限于XE数据库中的那些用户/表空间?

时间:2012-09-07 19:26:17

标签: oracle express oracle-apex oracle-xe

我的工作使用Oracle 10G,并计划安装Apex。与此同时,我已经下载了Oracle XE并自学了APEX;但是,我只能访问我在XE数据库中创建的用户/表空间。我想做的是使用XE的Apex访问我工作的生产数据库中的用户/表空间。

我的同事说这应该是可行的,因为我的工作站连接到服务器,并且应该有一种方法来配置从我的XE的Apex到10g的数据库的访问,例如通过设置适当的DAD。

我在Apex用户界面中看不到任何内容允许这样做。我已经阅读了Apex文档的每一个字,但没有注册。

XE使用嵌入式PL / SQL网关,而不是使用Apex侦听器或带有mod_plsql插件的HTTP服务器的10 / 11G。

谢谢,

Matthew Moisen

1 个答案:

答案 0 :(得分:3)

在我们无法访问托管要处理的数据的实际数据库之前,我已经完成了此操作,以保存标准端口1521侦听器访问权限。当时的Apex对于组织而言是新的,DBA也将使用他们的数据库服务器作为网络服务器网关也有一个伏都教禁忌。您可以使用安装了APEX的数据库实例作为“中间层”或应用服务器,并执行以下步骤:

  1. 在10g数据库上设置一个可通过dblink远程访问的帐户。
  2. 在安装了XE的工作站上为您的10g数据库表设置dblinks,使用(1)中设置的10g数据库的帐户和连接信息。请注意,您可能必须更新TNS名称文件或在dblink本身中明确指出主机/网络设置。
  3. 为了简化编写顶点项目的简洁性和简单性,请为所有dblinked对象设置同义词(即table1 @ tablelink的table1),这样就不会直接在顶点代码中引用dblinks。如果您坚持这一点,稍后进行更改会更容易。
  4. 就是这样。一个附带条件是,您需要知道在使用dblink时,LOB不能与APEX驱动的DML操作的开箱即用功能一起使用。这可能随最新版本而改变。您可以考虑的一种解决方法是尝试使用存储过程将LOB数据作为输入参数传递,该参数将为您执行DML操作。

    否则,这种方法很有效。我实现此模型的地方有几个生产级应用程序,一个测试和一个开发层,所有这些都使用与实际数据源分开托管APEX的服务器。我们使用了Oracle Standard Edition One(用于支持),但Oracle XE应该也可以使用,因为APEX是Oracle版本之间的通用平台。