暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 在sql loader 11.2.0.2.0中可选地由 “” 括起来的use子句

askTom 2017-08-21
633

问题描述

我有奇怪的行为在我的.ctl文件中使用可选地由 '"' 封闭。
它不能像预期的那样工作,我确实理解为什么。你能帮我吗?

这里。ctl文件:
OPTIONS (PARALLEL=TRUE,DIRECT=TRUE,ROWS= '150000',BINDSIZE= '45000000',SKIP= '1')
UNRECOVERABLE
LOAD DATA
INFILE 'C:\Users\test_enclosed_fields.csv'
APPEND
INTO TABLE TEST_ENCLOSED_FIELDS
fields terminated by ';' optionally enclosed by '"'
TRAILING NULLCOLS
(EconomicSectorOrigin,EntityProvider,ApplSnd,ExtractionTS,SecCd,SecCdSrc,SecCdLabel,IssrCd,IssrSrc,IssrLabel)
复制


这里是ddl:
CREATE TABLE "PVT_ECO_SECT_DESC" 
   ( "ECONOMICSECTORORIGIN" VARCHAR2(15 BYTE), 
 "ENTITYPROVIDER" VARCHAR2(20 BYTE), 
 "APPLSND" VARCHAR2(10 BYTE), 
 "EXTRACTIONTS" NUMBER(*,0), 
 "SECCD" VARCHAR2(50 BYTE), 
 "SECCDSRC" VARCHAR2(30 BYTE), 
 "SECCDLABEL" VARCHAR2(150 BYTE), 
 "ISSRCD" VARCHAR2(20 BYTE), 
 "ISSRSRC" VARCHAR2(30 BYTE), 
 "ISSRLABEL" VARCHAR2(100 BYTE)
    ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT);
复制


这里有2行带有封闭字段:
LI;BNPPIP;DCC;20170810020335;597673;"Public administration and defence; compulsory soci";O848;"Public administration and defence; compulsory soci";YYY;FFFF;
LI;BNPPIP;DCC;20170810020335;584063;"Public administration and defence; compulsory soci";O145;"Public administration and defence; compulsory soci";DDD;WWW;
复制


包含文本 “公共管理和防御; 强制性soci” 的字段不作为封闭字段处理,并且通过分隔符 “;” 将它们拆分为2个字段。这将导致下一个字段未对齐,并且插入的数据是错误的。
你能帮我吗?我不明白我的ctl文件中有什么问题。
感谢和问候

专家解答

我没有看到这个问题:

C:\Users\csaxon\Documents\Scripts>type test_enclosed_fields.csv
LI;BNPPIP;DCC;20170810020335;597673;"Public administration and defence; compulsory soci";O848;"Public administration and defence; compulsory soci";YYY;FFFF;
LI;BNPPIP;DCC;20170810020335;584063;"Public administration and defence; compulsory soci";O145;"Public administration and defence; compulsory soci";DDD;WWW;
C:\Users\csaxon\Documents\Scripts>sqlldr userid=chris/chris@db control=sqlldr.ctl

SQL*Loader: Release 12.2.0.1.0 - Production on Mon Aug 21 17:11:16 2017

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Path used:      Direct
SQL*Loader-281: Warning: ROWS parameter ignored in parallel mode.

Load completed - logical record count 1.

Table PVT_ECO_SECT_DESC:
  1 Row successfully loaded.

Check the log file:
  sqlldr.log
for more information about the load.

C:\Users\csaxon\Documents\Scripts>sql112

C:\Users\csaxon\Documents\Scripts>sql.exe chris/chris@db

SQLcl: Release 17.2.0 Production on Mon Aug 21 17:11:32 2017

Copyright (c) 1982, 2017, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options


SQL> set sqlformat ansiconsole
SQL> set lines 160
SQL> /
ECONOMICSECTORORIGIN  ENTITYPROVIDER  APPLSND  EXTRACTIONTS    SECCD   SECCDSRC                                            SECCDLABEL  ISSRCD                                              ISSRSRC  ISSRLABEL
LI                    BNPPIP          DCC      20170810020335  584063  Public administration and defence; compulsory soci  O145        Public administration and defence; compulsory soci  DDD      WWW


SQL>
复制


但是,我没有SQL * Loader 11.2.0.2的副本。因此,要么您遇到了该版本的错误,要么正在发生其他事情。

尝试将SQL * Loader升级到最新版本 (12.2.0.1)。如果仍然不能解决问题,请向我们展示您所做的正是导致问题的原因。即像我上面所做的复制粘贴。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论