首页 文章

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

提问于
浏览
2

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

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

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

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

谢谢,

马修莫森

1 回答

  • 3

    之前我已经完成了这个,我们无法访问托管要处理的数据的实际数据库,以保存标准端口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版本之间的共同平台 .

相关问题