1

スタックオーバーフラワー!

外部ファイルからデータをマッピングする外部テーブルがある Oracle Database 11g インスタンスに問題があります。

これは、開発中の Windows Server 2008 R2 x64 仮想マシンで動作している私のコードです。

CREATE TABLE ABC (
    NAMECREDORPART1 CHAR(50 CHAR), 
    NAMECREDORPART2 CHAR(50 CHAR), 
    NAMECREDORPART3 CHAR(50 CHAR), 
    ADDRESSCREDORPART1 CHAR(50 CHAR),
    (...)
   ) 
   ORGANIZATION EXTERNAL (
        TYPE ORACLE_LOADER
        DEFAULT DIRECTORY FILES
        ACCESS PARAMETERS (
            records delimited by '\n' CHARACTERSET 'WE8ISO8859P15'
            LOAD WHEN (documento != blanks)
            FIELDS
            MISSING FIELD VALUES ARE NULL
            REJECT ROWS WITH ALL NULL FIELDS (
               NAMECREDORPART1 position(1:49) char(50),
               NAMECREDORPART2 position(50:99) char(50),       
               NAMECREDORPART3 position(100:149) char(50),
               ADDRESSCREDORPART1 position(150:199) char(50),
               (...)
            )
        )
        LOCATION ('abc.mtf')
    )
PARALLEL
NOMONITORING
REJECT LIMIT UNLIMITED;

このコードにより、次のデータがこの ABC テーブルにロード/マップされます ここに画像の説明を入力 。:D

残念ながら、私の本番環境は、Linux プラットフォームで実行されている Oracle Database 11g (同じバージョン) です。これにより、同じコードを使用して同じファイル (abc.mtf) をロードすると、奇妙な動作が発生します。フィールドがスペースで埋められます。Windows Server 2008 VM では発生していないため、なぜこれが発生するのかわかりません。

Linux 環境でのこの同じデータのスクリーンショットを次に示します。

http://img211.imageshack.us/img211/7535/error01i.png

Linux環境でWindowsと同じ出力を得るのを手伝ってもらえますか? よろしくお願いします。

4

1 に答える 1

0

問題は、さまざまな行末文字の組み合わせを考慮していない「によって区切られたレコード」句でしょうか? デフォルトの NEWLINE はそれを処理する必要があります。

于 2012-11-08T12:06:41.517 に答える