Я хочу создать внешнюю таблицу в базе данных Oracle, получая ее данные из простого файла на сервере. Формат этого файла нетривиален. Каждая строка в этом файле может быть одной из нескольких разных компоновок, в зависимости от префикса строки (сам префикс всегда имеет фиксированную длину). Например, строка, начинающаяся с 'TYPE1'
, будет иметь разную компоновку, чем строка, начинающаяся с 'TYPE2'
.
Я прочитал, что внешние таблицы могут использовать все конструкции, доступные для SQL Управляющие файлы загрузчика. Тем не менее, любая документация, которую я прочел только для швов, имеет дело с тривиальными раскладками плоских файлов, при которых все линии имеют общий макет. Управляющий файл загрузчика 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?