首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跳过将数据加载到外部表中的列

跳过将数据加载到外部表中的列
EN

Stack Overflow用户
提问于 2016-05-19 11:17:34
回答 2查看 2.5K关注 0票数 1

这是我创建的外部表:

代码语言:javascript
复制
CREATE TABLE emp_load 
(
  "ESN_NO" VARCHAR2 (200), 
  "MAKER" VARCHAR2 (30), 
  "HANDSET" VARCHAR2 (20), 
  "MODEL_NO" VARCHAR2 (20), 
  "OMH_TTSL_FLAG" VARCHAR2 (10), 
  "OFFER" VARCHAR2 (100), 
  "STATUS" VARCHAR2 (20), 
  "STATUS_UPDATED_DATE" DATE
) ORGANIZATION EXTERNAL (
  TYPE ORACLE_LOADER DEFAULT DIRECTORY "EXT_TAB_DIR" ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE skip 1
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    missing FIELD VALUES are NULL
    ) LOCATION ('BAU.csv')
) ;                         

BAU.csv文件的示例内容

代码语言:javascript
复制
ESN No          Make    Model   RI_value
A10000428A5348  Lava    C180    OFFER14
A10000428A5349  Lava    C180    OFFER14
A10000428A534A  Lava    C180    OFFER14
A10000428A534B  Lava    C180    OFFER14

它工作得很好,但是数据没有出现在我需要的列中;我希望列handset是空的,但是当前文件中的model值被加载到handset列中。所以我现在得到:

代码语言:javascript
复制
ESN_NO          MAKER  HANDSET  MODEL_NO  OMH_TTSL_FLAG  OFFER  STATUS  STATUS_UPDATED_DATE  
A10000428A5348  Lava   C180     OFFER14                                                      
A10000428A5349  Lava   C180     OFFER14                                                      
A10000428A534A  Lava   C180     OFFER14                                                      
A10000428A534B  Lava   C180     OFFER14                                                      

我希望跳过handset列,在model_no中插入model;跳过omh_ttsl_flag,在offer中插入文件中的ri_value。所以我最后想做的是:

代码语言:javascript
复制
ESN_NO          MAKER  HANDSET  MODEL_NO  OMH_TTSL_FLAG  OFFER    STATUS  STATUS_UPDATED_DATE  
A10000428A5348  Lava            C180                     OFFER14                               
A10000428A5349  Lava            C180                     OFFER14                               
A10000428A534A  Lava            C180                     OFFER14                               
A10000428A534B  Lava            C180                     OFFER14                               

如何在将数据加载到外部表时跳过这些列?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-19 12:43:28

为此,可以将文件中的字段指定为fields子句的一部分,并指定不与 clause一起出现的字段,例如:

代码语言:javascript
复制
COLUMN TRANSFORMS ("HANDSET" FROM NULL, "OMH_TTSL_FLAG" FROM NULL)

所以你的声明是:

代码语言:javascript
复制
CREATE TABLE emp_load 
(
  "ESN_NO" VARCHAR2 (200), 
  "MAKER" VARCHAR2 (30), 
  "HANDSET" VARCHAR2 (20), 
  "MODEL_NO" VARCHAR2 (20), 
  "OMH_TTSL_FLAG" VARCHAR2 (10), 
  "OFFER" VARCHAR2 (100), 
  "STATUS" VARCHAR2 (20), 
  "STATUS_UPDATED_DATE" DATE
)
ORGANIZATION EXTERNAL
(
  TYPE ORACLE_LOADER DEFAULT DIRECTORY "EXT_TAB_DIR" ACCESS PARAMETERS
  (
    RECORDS DELIMITED BY NEWLINE skip 1
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    MISSING FIELD VALUES ARE NULL
    (
      "ESN_NO" CHAR (200), 
      "MAKER" CHAR (30), 
      "MODEL_NO" CHAR (20), 
      "OFFER" CHAR (100)
    )
    COLUMN TRANSFORMS
    (
      "HANDSET" FROM NULL,
      "OMH_TTSL_FLAG" FROM NULL,
      "STATUS" FROM NULL,
      "STATUS_UPDATED_DATE" FROM NULL
    )
  )
  LOCATION ('BAU.csv')
) ;  

我还包括了另外两列,这不是必要的,但有助于记录您希望看到的内容。

将示例数据转换为CSV,将其加载为:

代码语言:javascript
复制
set sqlformat ansiconsole
column esn_no format a20
select * from emp_load;

ESN_NO          MAKER  HANDSET  MODEL_NO  OMH_TTSL_FLAG  OFFER    STATUS  STATUS_UPDATED_DATE  
A10000428A5348  Lava            C180                     OFFER14                               
A10000428A5349  Lava            C180                     OFFER14                               
A10000428A534A  Lava            C180                     OFFER14                               
A10000428A534B  Lava            C180                     OFFER14                               
票数 0
EN

Stack Overflow用户

发布于 2016-05-19 11:34:36

代码语言:javascript
复制
insert into emp_load (ESN_NO,MAKER,MODEL_NO,OFFER)
values ('A10000428A5348','Lava','Lava','OFFER14)

默认值为空,因此所有其他列都将收到空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37321604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档