叠花!
我在使用 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 环境中的屏幕截图:

有人可以帮我在 Linux 环境下获得与我在 Windows 上获得的输出相同的输出吗?在此先感谢您的帮助!