我的问题是,如果我有一个dicrectory,例如4个具有相同结构的文件,我是否需要为每个文件创建一个外部表,或者我可以在目录的顶部创建表并有1个外部表到4个文件。
由于
答案 0 :(得分:1)
如external tables concepts和exmaples所示,您可以在locations子句中指定多个文件:
...
LOCATION ('file1.csv', 'file2.csv', 'file3.csv', 'file4.csv')
...
如果它们位于不同的目录中,您可以使用相关的目录名称为每个文件名添加前缀:
LOCATION
- 指定外部表的数据文件。
- 对于
ORACLE_LOADER
和ORACLE_DATAPUMP
,文件以directory:file
的形式命名。目录部分是可选的。如果缺少,则默认目录用作文件的目录。如果您使用的是ORACLE_LOADER
访问驱动程序,则可以在文件名中使用通配符:星号(*)表示多个字符,问号(?)表示单个字符。
......但这似乎与您的情况无关。
除非您使用通配符,否则文件的编号和名称是固定的。
如果您将始终拥有相同数量的文件但名称不同,则可以添加preprocess子句以重命名其他文件以匹配这些预期名称;或者更实际的是,只需要一个虚拟的预期名称和use a preprocessor来将所有文件组合成一个访问驱动程序实际使用的标准输出流。