2

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

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

版本详情:

Forms [32 位] 版本 10.1.2.3.0 (Production) Oracle Toolkit Version 10.1.2.0.2 (Production) PL/SQL Version 10.1.0.5.0 (Production) Oracle Procedure Builder V10.1.2.3.0 - Production PL/SQL编辑器 (c) WinMain Software (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 Multimedia 版本 10.1.2.0.2(生产)Oracle 工具集成版本 10.1.2.0.2(生产)Oracle 工具公共区域版本 10.1.2.0.2 Oracle CORE 10.1.0.5.0
生产 SQL*Plus:版本 10.2.0.3.0 - 生产于 2012 年 11 月 22 日星期四 19:44:05 版权所有 (c) 1982, 2006,Oracle。版权所有。连接到:Oracle 数据库 11g 企业版版本 11.2.0.2.0 - 64 位生产,具有分区、真正应用程序集群、自动存储管理、OLAP、数据挖掘和真正应用程序测试选项

4

2 回答 2

2

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

所以TEXT_IO其实就是你描述的场景需要用到的函数。

TEXT_IO 不能做的是读取或写入台式 PC 上的文件。这就是 Oracle 添加Webutils 库以提供不再适用于 n 层架构的客户端功能的原因。

于 2012-11-24T09:28:33.727 回答
1

我不确定我是否误解了您的问题,但您可以使用TEXT_IO它自己在“应用服务器”中读取和写入文件。我使用 Oracle Forms 10g,下面是 Forms Online Help 文档中的文本。


关于 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 用于 Windows 日语。

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

只需参考 Forms Developer Help Menu > Online Help 并搜索术语TEXT_IOCLIENT_TEXT_IO您将看到详细信息。


但是,正如 Oracle 所记录的,必须牢记以下内容-

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

这是一个简单的例子

于 2012-11-23T21:08:14.717 回答