2012-01-05 85 views
2

我有20個表是我們不斷加載和驗證數據的臨時表,我有每個表的控制文件。動態SQL加載器控制文件

我怎樣纔能有一個獨特的控制文件,只是改變數據加載到表中? 有什麼建議嗎?

在此先感謝!

---甲骨文信息---

Oracle數據庫10g企業版發佈10.2.0.1.0 - 64bi

+1

是20個臨時表的名稱相同的佈局嗎? – tbone 2012-01-05 15:44:10

+0

是的,他們有相同的佈局 – BRabbit27 2012-01-05 16:11:09

+0

sqlldr在Linux,Windows? – tbone 2012-01-05 16:19:30

回答

0

也許你可以使用多個INTO TABLE子句,並區分bitween他們,不知何故,與WHEN子句。
Look here瞭解更多詳情

+0

好吧我會去看看 – BRabbit27 2012-01-05 16:13:10

2

建議您編寫控制文件,將數據加載到同義詞中而不是放入特定表中。通過將同義詞重新定義到所需的表,開始每次加載運行。

+0

你能解釋一下嗎? ?我不知道什麼是同義詞... – BRabbit27 2012-01-05 16:13:02

+0

_synonym_是引用表(或其他Oracle DB對象)的替代名稱。您可以按如下方式創建它: '爲TEMPTAB_07創建同義詞LOAD_HERE;' 請參見[CREATE SYNONYM](http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_7001.htm#CJAJCDDF)頁面瞭解更多詳情。 – 2012-01-05 16:16:34

+0

好吧。所以在我的應用程序加載數據之前,我重新定義了該同義詞指向我想要加載數據的表,並且voilà...是的,我認爲這是一個非常好的解決方案...我現在檢查這個... BTW有沒有一個API可以從Java調用SqlLoader?現在我使用exec()方法(在控制檯上執行一個命令)執行Java中的SqlLoader,謝謝 – BRabbit27 2012-01-05 16:21:58