0

我的要求是我必须在存储过程中为具有不同列的不同文本文件使用单个外部表。

我可以在 Oracle 11g 的外部表中使用动态列吗?像这样:

create table ext_table  as select * from TBL_test              
                organization external (
                type  oracle_loader
                default directory  DATALOAD
                access parameters(                
                records delimited  by newline
                fields  terminated by '#'
                missing field values are null
                )
                location ('APD.txt')
              )
              reject limit unlimited;
4

1 回答 1

1

为外部表定义的列集,就像为常规表定义的列集一样,在定义外部表时必须是已知的。您不能在运行时选择确定该表今天有 30 列,明天有 35 列。您还可以潜在地将外部表定义为具有任何平面文件将具有的最大列数,一般地命名列(即col1通过col50),然后移动确定外部表的列 N 的复杂性实际上是ETL 代码的特定字段。但是,这并不明显为什么这比正确创建外部表定义更有用。

为什么要求您使用单个外部表定义来加载许多不同格式的文件?这似乎不合理。

您可以在运行时删除并重新创建外部表定义吗?或者这是否违反了对单个外部表定义的要求?

于 2012-06-05T12:31:37.220 回答