Oracleデータベースに外部テーブルを作成し、サーバー上のフラットファイルからそのデータを取得したいと思います。このファイルの形式は重要です。このファイルの各行は、行のプレフィックスに応じて、いくつかの異なるレイアウトの1つにすることができます(プレフィックス自体は常に固定長です)。たとえば、で始まる行は、で始まる行と'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の外部テーブル定義構文を使用してこのようなレイアウトを表現するにはどうすればよいですか?