如何通过Oracle外部表用逗号读取字段

时间:2018-04-11 06:44:53

标签: oracle external

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

123 abc,def 456.所以我必须将数据插入3列。 Fisrt列将具有123,第二列将具有abc,def和第三列将具有456.在访问参数中,我已经给出了由换行符#34;分隔的"记录。但是从外部表中选择数据时,它只在逗号(abc)之前提供数据。但我想读abc,def。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

以下适用于我;

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