外部表如何从每行末尾删除换行符

时间:2019-02-22 13:37:00

标签: sql oracle

我在从文件加载行时遇到问题,关键是当我使用此类外部表时

create table table_name
(
  id VARCHAR2(60)
)
organization external
(
  type ORACLE_LOADER
  default directory DIRECTORY
  access parameters 
  (
    RECORDS DELIMITED BY NEWLINE CHARACTERSET EE8MSWIN1250 nobadfile nodiscardfile
    FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '\"' LDRTRIM
    REJECT ROWS WITH ALL NULL FIELDS
    (
      ID VARCHAR2(60)
    )
  )
  location ('tmp.txt')
)
reject limit 0;

我的所有行在行末都有newLine字节,唯一有效的方法是从文件加载数据后使用此更新所有行

update table_name
set id = translate (id, 'x'||CHR(10)||CHR(13), 'x');

我如何自动制作?

2 个答案:

答案 0 :(得分:1)

准确检查文件中有哪些换行符,然后显式定义记录定界符。

示例

 records delimited by '\r\n'

问题的可能原因是换行符与您的操作系统不兼容-您也可以解决该主题。

答案 1 :(得分:0)

while的行分隔符可能为\ n或\ r \ n。 您可以通过在记事本++或任何其他支持的编辑器中打开文件并单击“显示所有字符”来进行检查

基于数据的生命规律,您可以创建外部表为

 RECORDS DELIMITED BY '\r\n'  or
 RECORDS DELIMITED BY '\n'  etx
相关问题