oracle 带有一列CSV的外部表

yrdbyhpb  于 2023-06-22  发布在  Oracle
关注(0)|答案(1)|浏览(122)

我有以下CSV数据和外部表定义。可以使用此命令导入包含一列的CSV文件。我可以使用表读取数据,但是当我选择阅读它们时,每行之前和之后都导入了双引号。
请给我一些关于如何从CSV文件导入数据而不使用双引号的建议。

CREATE TABLE XXINT_IRS_EXT(
   "INVOICE_NUM" VARCHAR2 (100 BYTE)
)
ORGANIZATION EXTERNAL (TYPE oracle_loader
   DEFAULT DIRECTORY "OEB_INBOUND_DIR" ACCESS PARAMETERS (
       RECORDS DELIMITED BY NEWLINE
           BADFILE 'IRS14.bad'
           LOGFILE 'IRS14.log'
           SKIP 1
       FIELDS          
       TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
       MISSING FIELD VALUES ARE NULL
   ) LOCATION ("INBOUND_DIR" : 'IRS14.csv')
) REJECT LIMIT UNLIMITED;

CSV示例数据:

INV-2081272-05488243
INV-1656378-05427715
INV-1666200-05428937
INV-1688570-05432307
INV-3292506-00012864
INV-811613-05326087

电流输出如下。

"INV-2081272-05488243 
"

预期输出如下。

INV-2081272-05488243
beq87vna

beq87vna1#

Oracle 21cXE
我没有你的目录(也不想创建它),所以我将使用我的一个:

SQL> select directory_name From all_directories;

DIRECTORY_NAME
--------------------------------------------------------------------------------
DATA_PUMP_DIR
EXT_DIR              --> I'll use this directory

CREATE TABLE语句中没有更改,除了目录名(第5行和第13行):

SQL> CREATE TABLE XXINT_IRS_EXT(
  2     "INVOICE_NUM" VARCHAR2 (100 BYTE)
  3  )
  4  ORGANIZATION EXTERNAL (TYPE oracle_loader
  5     DEFAULT DIRECTORY "EXT_DIR" ACCESS PARAMETERS (
  6         RECORDS DELIMITED BY NEWLINE
  7             BADFILE 'IRS14.bad'
  8             LOGFILE 'IRS14.log'
  9             SKIP 1
 10         FIELDS
 11         TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
 12         MISSING FIELD VALUES ARE NULL
 13     ) LOCATION ("EXT_DIR" : 'IRS14.csv')
 14  ) REJECT LIMIT UNLIMITED;

Table created.

CSV文件内容:

SQL> $type c:\temp\irs14.csv
INV-2081272-05488243
INV-1656378-05427715
INV-1666200-05428937
INV-1688570-05432307
INV-3292506-00012864
INV-811613-05326087
SQL>

Select works OK并返回数据 as is,即您报告的没有 phantom 双引号:

SQL> select * from xxint_irs_ext;

INVOICE_NUM
--------------------------------------------------------------------------------
INV-1656378-05427715
INV-1666200-05428937
INV-1688570-05432307
INV-3292506-00012864
INV-811613-05326087

SQL>

请编辑问题并发布您自己的SQL*Plus会话,其中显示您所做的以及Oracle如何回应。

相关问题