如何从Oracle Forms中读取应用程序服务器中的文件?

时间:2012-11-23 14:15:59

标签: oracle oracleforms

我被要求在Oracle Forms中编写代码,从“中间件”(应用程序服务器)而不是客户端读取文件中的数据。目的是将加密密钥保存在人们不会偶然发现的地方。

我知道我可以使用TEXT_IO包来读取客户端的文件,但是有没有类似于另一端的读取文件?

版本详情:

  

表单[32位]版本10.1.2.3.0(生产)Oracle Toolkit版本   10.1.2.0.2(生产)PL / SQL版本10.1.0.5.0(生产)Oracle Procedure Builder V10.1.2.3.0 - 生产PL / SQL编辑器(c)WinMain   软件(www.winmain.com),v1.0(生产)Oracle Query Builder   10.1.2.3.0 - 生产Oracle虚拟图形系统版本10.1.2.0.2(生产)Oracle工具GUI实用工具版本10.1.2.0.2(生产)Oracle多媒体版本10.1.2.0.2(生产)Oracle   工具集成版本10.1.2.0.2(生产)Oracle Tools Common   区域版本10.1.2.0.2 Oracle CORE 10.1.0.5.0
  生产SQL * Plus:版本10.2.0.3.0 - 11月22日星期四生产   19:44:05 2012版权所有(c)1982,2006,Oracle。版权所有。   连接到:Oracle Database 11g企业版发行版   11.2.0.2.0 - 64位生产,具有分区,真实应用集群,自动存储管理,OLAP,数据挖掘和真实   应用程序测试选项

2 个答案:

答案 0 :(得分:2)

TEXT_IO从目录本地读取Forms运行时中的文件。在客户端/服务器模式下,这将是我们的桌面PC,但在Web交付的表单中,即应用服务器。

因此,TEXT_IO实际上是您在所描述的场景中需要使用的功能。

TEXT_IO无法读取或写入桌面PC上的文件。这就是为什么Oracle添加the Webutils library以提供不再适用于n层体系结构的客户端功能的原因。

答案 1 :(得分:1)

我不确定我是否误解了您的问题,但您可以使用TEXT_IO本身来读取和写入“App Server”中的文件。我在Oracle Forms 10g上工作,下面是Forms Online帮助文档中的文本。


关于TEXT_IO

包描述TEXT_IO包中包含的结构提供了从文件写入和读取信息的方法。 Text_IO中有几个可用的程序和功能,分为以下几类:

使用说明

  1. Text_IO 在应用服务器计算机上运行,​​而不是客户端
  2. 某些text_io函数(put,putf,put_line和new_line)具有重载版本,这些版本不将文件(file_type)参数作为第一个参数。在6i及更早版本中,除非您在调试模式下工作,否则这些函数无法运行,在这种情况下,它们会写入调试控制台。在Oracle Forms中,因为有一个不同的调试器没有控制台,这些内置版本的这些版本根本没有任何效果。这些内置插件用于向后兼容,将在以后的版本中删除。
  3. 要使TEXT_IO包使用非ASCII文件名,NLS_LANG必须与平台的编码匹配。例如JA16SJIS for Windows Japanese。

  4. 为了能够在客户端计算机上读取和写入文件,您必须使用 WebUtil CLIENT_TEXT_IO

    只需参阅Forms Developer帮助菜单>在线帮助并搜索条件TEXT_IOCLIENT_TEXT_IO,您会看到详细信息。


    然而,正如Oracle所记录的那样,必须牢记以下内容 -

      

    许多Forms应用程序利用Text_IO来读取和写入数据   文件系统。将Forms应用程序移动到Web时,   Text_IO的工作方式与客户端/服务器完全相同。然而,   你现在必须记住你的应用程序正在运行   应用程序服务器而不是客户端计算机。

    这是一个快速example