2017-05-12 142 views
0

我有位於數據庫中的所有的業務邏輯一個金融系統,我必須代碼交易批量處理,它由下列步驟的自動化的工作流程:序列化查詢結果

  1. 用戶或者外部系統在表格中插入一些數據
  2. 在進一步處理具有數字簽名的CSV文件形式的此數據的快照之前,必須進行此操作。 CSV快照本身及其簽名必須保存在同一個輸入表中。程序更新成功簽約行,以使它們可用於代碼 進一步措施...的代碼進一步措施

明顯的問題是步驟#2:我不知道,如何分配查詢的結果爲表示CSV文件的BLOB指向一個變量。這似乎是一些基本的東西,但我找不到它。 CSV格式由用戶選擇,因爲它是人類可讀的。簽名本身可以向外部系統發出請求,所以這不是問題。 限制:

  • 沒有應用服務器,它可以處理數據,所以我有PLSQL做
  • 沒有辦法保存本地文件,一切都必須在飛行
  • 完成

我知道通常人們會在應用程序層或一些本地文件上做所有的工作,但不幸的是情況並非如此。 任何幫助將不勝感激,在此先感謝

+0

當然,CSV數據會放在CLOB中,而不是BLOB中?創建它將包括使用標準文本函數(例如用於連接的「||」)來操作數據。數據庫支持CLOB列,而PL/SQL具有CLOB變量。什麼不起作用? –

回答

0

我同意@ william-robertson。你只需要創建一個逗號分隔的值字符串(假設頭和數據行)並將其寫入CLOB。我建議使用「插入」觸發器。有很多SQL技巧可以讓你更容易)。在使用該CSV字符串時,需要由讀取它的應用程序部分擁有,並且需要使用該字符串。

0

我明白你說你需要創建一個CVS,但看看你是否可以用XML來代替。然後,您可以使用DBMS_XMLGEN直接從查詢中爲數據庫列生成必要的快照。

我不接受CVS是人類可讀的概念(實際上有時會將它作爲直接文本嘗試)。有效的是,Excel以可讀的形式顯示它。但是也應該能夠將XML顯示爲可讀的。此外,如果需要,其中的數據可以直接返回到原始列中。

只是一個替代的想法。