如何在Oracle外部表中包含逗号

我有一个管道分隔文件,在最后一个字段中包含逗号,如下所示:

COLOR|CAT|CODES
Red|Pass|tiger,12@fol,letmein
Blue|Pass|jkd@332,forpw,wonton
Gray|Pass|rochester,tommy,23$ai,

我用空格终止最后一列,并且一切正常,没有错误,除了它将仅包括/读取最后一列中的第一个值和第一个逗号,例如Tiger,jkd @ 332等。显然是因为逗号后有空格。

如何在不出现任何错误的情况下添加逗号?我已经尝试过" "/r/n/r/n,甚至在上一列中排除了"terminated by",尽管它们会包含逗号,每次我从外部表(包含数千条记录)中选择全部时,都会收到ORA-29913ORA-30653拒绝错误。

我的拒绝限制为10,但我不想将其更改为UNLIMITED,因为我不想忽略这些错误,也无法更改文件。

我的代码:

    --etc..
    FIELDS TERMINATED BY '|'
            OPTIONALLY ENCLOSED BY '"'
            MISSING FIELD VALUES ARE NULL
    --etc..
    CODES CHAR TERMINATED BY WHITESPACE
iCMS 回答:如何在Oracle外部表中包含逗号

方法如下:

SQL> create table color (
  2    color      varchar2(5),3    cat        varchar2(5),4    codes      varchar2(50)
  5  )
  6  organization external (
  7    type oracle_loader
  8    default directory ext_dir
  9    access parameters (
 10      records delimited by newline
 11      skip 1
 12      fields terminated by '|'
 13      missing field values are null
 14      (
 15        color    char(5),16        cat      char(5),17        codes    char(50)
 18      )
 19    )
 20    location ('color.txt')
 21  )
 22  parallel 5
 23  reject limit unlimited;
SQL>
SQL> select * From color;

COLOR CAT   CODES
----- ----- --------------------------------------------------
Red   Pass  tiger,12@fol,letmein
Blue  Pass  jkd@332,forpw,wonton
Gray  Pass  rochester,tommy,23$ai,SQL>
本文链接:https://www.f2er.com/2144256.html

大家都在问