我希望在 Oracle 数据库中创建一个外部表,从服务器上的平面文件中检索其数据。这个文件的格式很重要。此文件中的每一行都可以是几种不同布局之一,具体取决于行的前缀(前缀本身始终是固定长度)。例如,以 开头的行与以 开头的行'TYPE1'
具有不同的布局'TYPE2'
。
我已经读到外部表可以利用 SQL Loader 的控制文件可用的所有结构。但是,我读过的任何文档都只用于处理琐碎的平面文件布局,其中所有行都共享一个共同的布局。SQLWHEN
Loader 控制文件可以使用以下子句轻松处理这种情况:
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 的外部表定义语法来表达这样的布局?