【问题标题】:How to read field with comma through Oracle external table如何通过Oracle外部表读取带逗号的字段
【发布时间】:2018-09-20 22:26:57
【问题描述】:

我有一个位置分隔的文本文件,我必须通过 Oracle 外部表读取它。在该位置分隔文件 I 字段为名称,以逗号分隔。例如:

123 abc,def 456。所以我必须将数据插入 3 列。第一列将有 123,第二列将有 abc,def,第三列将有 456。在访问参数中,我给出了“由换行符分隔的记录”。但是在从外部表中选择数据时,它只给出逗号(abc)之前的数据。但我想读 abc,def。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 你为FIELDS TERMINATED BY付出了什么?

标签: oracle external


【解决方案1】:

以下对我有用;

CREATE TABLE test
(
  col_1 NUMBER,
  col_2 VARCHAR2(30),
  col_3 NUMBER
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY MY_DIR
     ACCESS PARAMETERS 
       ( RECORDS DELIMITED BY '\r\n'
         FIELDS TERMINATED BY ' '
         OPTIONALLY ENCLOSED BY '"'
         MISSING FIELD VALUES ARE NULL
        ( col_1, col_2, col_3
         )
            )
     LOCATION (MY_DIR:'test.txt')
  )
REJECT LIMIT UNLIMITED;

请记住,“由 '/r/n' 分隔的记录”可能特定于 Windows,但我的结果如下;

SQL> select * from test
  2  /

 COL_1     COL_2                               COL_3
---------- ------------------------------ ----------

   123     ABC,DEF                               123
   789     ABCD,EF                               123
   456     A,B,C,DEF                             123

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2018-01-10
    相关资源
    最近更新 更多