Oracle 11gで外部テーブル手法を使用して、ファイルからデータベースにデータをロードしています。Oracle 11g外部テーブル(ファイル)データのスキップについて
ファイルは外部からのもので、標準形式です。しかし、私のアプリケーションでは、各行のすべての列(ファイル内のフィールド)は必要ありません。どの列をソースにするべきか、無視しなければならない列を指定する方法がありますか(たとえば、オフセットを指定するなど)。
Oracle 11gで外部テーブル手法を使用して、ファイルからデータベースにデータをロードしています。Oracle 11g外部テーブル(ファイル)データのスキップについて
ファイルは外部からのもので、標準形式です。しかし、私のアプリケーションでは、各行のすべての列(ファイル内のフィールド)は必要ありません。どの列をソースにするべきか、無視しなければならない列を指定する方法がありますか(たとえば、オフセットを指定するなど)。
データファイルの幅が固定されているので、興味のない部分だけを省略することができます。フィールドの指定が連続である必要はありません。
たとえば、むしろ別の列に行の最初の3つの文字をロードする
(
col1 (1:1) CHAR(1),
col2 (2:2) CHAR(1),
col3 (3:3) CHAR(1)
)
を指定するよりも、あなたが第二のカラムをスキップしだけで、第1〜第3、及び第四の位置をロードすることができファイルを3つの別々の列に変換します。
(
col1 (1:1) CHAR(1),
col2 (3:3) CHAR(1),
col3 (4:4) CHAR(1)
)
ファイルの形式について説明できますか?たとえば、固定幅のファイル、または区切られたファイルについて話していますか? 「オフセット」という言葉の使用は固定幅を意味しますが、それが意図的であるかどうかはわかりません。 –
こんにちは。はい、ファイルは固定幅のファイルで、行の終わりが区切られ、外部テーブルの定義には各フィールドの長さが記述されています。 – Sid