2012-11-23 16 views
2

我被要求在Oracle Forms中編寫代碼,用於從「中間件」(應用程序服務器)中的文件讀取數據,而不是在客戶端。目的是在人們不會偶然發現的地方保存加密密鑰。如何從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 Tools 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核心10.1.0.5.0
生產SQL * Plus:版本10.2.0.3.0 - 生產於2012年11月22日 19:44:05 2012 Copyright(c)1982,2006,Oracle 。版權所有。 連接到:Oracle數據庫11g企業版發行 11.2.0.2.0 - 隨着分區64位生產,真正應用集羣,自動存儲管理,OLAP,數據挖掘和實時 應用測試選項

+0

表單10g將在服務器上。該文件是否存在於同一臺服務器中,或者您是否嘗試從另一臺服務器讀取文件? –

回答

2

TEXT_IO從Forms運行時本地的目錄中讀取文件。在客戶機/服務器模式下,這將是我們的桌面PC,但是在網絡交付的表單中是應用服務器。

因此,TEXT_IO實際上是您在描述的場景中需要使用的功能。

TEXT_IO不能做的是讀取或寫入桌面PC上的文件。這就是爲什麼Oracle增加了the Webutils library,以提供客戶端功能不再適用於n層體系結構的原因。

1

我不是當然,如果我誤解了你的問題,但你可以使用TEXT_IO本身來讀寫「App Server」中的文件。我使用Oracle Forms 10g,下面是Forms Online Help文檔的正文。


關於with上Text_Io

包裝說明TEXT_IO包中包含提供的方法來寫和讀信息和文件結構。有幾個過程和函數在with上Text_Io可用,落入以下幾類:

使用說明

  1. with上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日語。

爲了能夠讀取和寫入客戶端機器上的文件,你將不得不使用WebUtil CLIENT_TEXT_IO

只需參閱Forms Developer的幫助菜單>聯機幫助,然後搜索條款TEXT_IOCLIENT_TEXT_IO,您將看到詳細信息。


但是通過Oracle作爲記錄的下面必須保持mind-

許多表格應用程序利用with上Text_Io讀取和 文件系統寫入數據。將Forms應用程序移至Web時, Text_IO的工作方式與客戶端/服務器完全相同。但是,您現在必須記住您的應用程序正在 應用程序服務器上運行,而不是客戶端計算機上運行。

這是一個快速的example

相關問題