2016-12-01 40 views
0

我正在讀取固定長度文本文件中的數據並將其加載到具有固定長度處理的表中。在SQL Loader輸入字段上執行字符串長度

我想檢查輸入行的長度,以便丟棄不匹配固定長度的記錄並將它們記錄到錯誤表中。

載入到Input_Log表,如果線被滿足規定長度 載入到Input_Error_Log表,如果輸入行長度比所述固定線的長度小於或更大。

+0

換句話說,您將根據是否滿足長度要求將整行加載到2個表格之一中?沒有將正確大小的行解析爲列?也許在示例之前/之後顯示一些真實數據以幫助我們理解。 –

回答

0

我相信你會被批量加載數據到一個臨時表中,然後從那裏通過存儲過程加載到生產表中得到更好的服務,您可以通過正常的PL/SQL & DML適用規則,你的心臟的內容。無論如何,這是一種典型的最佳做法。

sqlldr並不是真正的工具,即使你可以做你想做的事情,也不會太複雜。當爲真正爲批量加載設計的工具增加複雜性時,可維護性和可重啓能力變得更加複雜。將複雜性添加到適當的程序中。

讓我們知道你想出什麼。

+0

sqlldr中沒有解決方案,我用java預處理文件。將數據加載到登臺表中,如果數據超出臨時表列的限制,該怎麼辦? – Anandhakrishnan

+0

在暫存表中,使列大小大於所需值。長度測試將在你的java代碼中。 –