【发布时间】:2009-05-22 16:55:32
【问题描述】:
我希望在 Oracle 数据库中创建一个外部表,从服务器上的平面文件中检索其数据。这个文件的格式很重要。此文件中的每一行都可以是几种不同布局中的一种,具体取决于行的前缀(前缀本身始终是固定长度)。例如,以'TYPE1' 开头的行与以'TYPE2' 开头的行的布局不同。
我了解到外部表可以利用 SQLLoader 的控制文件提供的所有结构。但是,我读过的任何文档都只用于处理琐碎的平面文件布局,其中所有行共享一个共同的布局。 SQL加载器控制文件可以使用WHEN 子句轻松处理这种情况:
WHEN (1:5) = 'TYPE1'
(
field1 POSITION(10:18),
field2 POSITION(26:35)
)
WHEN (1:5) = 'TYPE2'
(
field1 POSITION(23:27),
field2 POSITION(15:19)
)
如何使用 Oracle 的外部表定义语法来表达这样的布局?
【问题讨论】:
标签: oracle external sql-loader