Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 外部表在读取文件时截断尾随空格_Oracle_Oracle12c_External Tables - Fatal编程技术网

Oracle 外部表在读取文件时截断尾随空格

Oracle 外部表在读取文件时截断尾随空格,oracle,oracle12c,external-tables,Oracle,Oracle12c,External Tables,我正在尝试将文件内容加载到外部表。执行此操作时,尾随空格将被截断 'CREATE TABLE ' || rec.ext_table_name || ' (ROW_DATA VARCHAR2(4000)) ORGANIZATION EXTERNAL ' || '(TYPE ORACLE_LOADER DEFAULT DIRECTORY ' || rec.dir_name || ' ACCESS ' || 'PARAMETERS (RECORDS ' || 'DELIMITED

我正在尝试将文件内容加载到外部表。执行此操作时,尾随空格将被截断

'CREATE TABLE ' || rec.ext_table_name || ' (ROW_DATA VARCHAR2(4000)) ORGANIZATION EXTERNAL ' ||
     '(TYPE ORACLE_LOADER DEFAULT DIRECTORY ' || rec.dir_name || ' ACCESS ' || 'PARAMETERS (RECORDS ' ||
     'DELIMITED by NEWLINE NOBADFILE NODISCARDFILE ' ||
     'FIELDS REJECT ROWS WITH ALL NULL FIELDS (ROW_DATA POSITION(1:4000) char)) LOCATION (' || l_quote ||
     'temp.txt' || l_quote || ')) REJECT LIMIT UNLIMITED'
例如,B表示空白,我的文件有:

Line1sometextBBBBBBB
我的外部表如下所示:

Line1sometext
我希望这个文件也有空白。如何阻止删除尾随空格

目前的问题是:

如果文件有:

Line1sometextBBBBBBB
这是一个带有

添加,特别是此处的NOTRIM,以更改默认字段修剪行为:

... FIELDS REJECT ROWS WITH ALL NULL FIELDS (ROW_DATA POSITION(1:4000) char NOTRIM)) LOCATION (...
                                                                            ^^^^^^
快速演示:

create table t42_ext (
  row_data varchar2(4000)
)
organization external
(
  type oracle_loader default directory mydir access parameters
  (
    records delimited by newline nobadfile nodiscardfile
    fields reject rows with all null fields
    (
      row_data position(1:4000) char notrim
    )
  )
  location ('temp.txt')
)
reject limit unlimited;

Table T42_EXT created.

select '<'|| row_data ||'>' from t42_ext;

'<'||ROW_DATA||'>'                                                             
--------------------------------------------------------------------------------
<Line1sometext       >                                                          

外部表中的记录也采用新行字符。。我不想使用substr。因为我的文件大约1GB,它会影响性能。不知道你的意思。。。由新行分隔的记录不负责吗?是的,它应该负责,但它不是。。。更新了问题请提出新问题。你可以使用continueif,但是你需要多解释一点,你不应该扩大这个问题的范围。