2012-01-05 86 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