【问题标题】:How to use XMLType in a SQL*Loader control file?如何在 SQL*Loader 控制文件中使用 XMLType?
【发布时间】:2014-06-20 11:04:07
【问题描述】:

我有一个 csvfile,其中包含一列 XML 数据。 csv 的示例记录如下所示:

1,,,<capacidade><numfields>3</numfields><template>1</template><F1><name lang="pt">Apple</name></F1></capacidade>

我想使用 SQL*Loader 将所有数据导入 Oracle;我将ctl文件定义如下:

LOAD DATA
 CHARACTERSET UTF8
 INFILE '/home/db2inst1/result.csv'
 CONTINUEIF NEXT(1:1) = '#'
 INTO TABLE "TEST"."T_DATA_TEMP"
FIELDS TERMINATED BY','
(   "ID" 
  , "SOURCE" 
  , "CATEGORY" 
  , "RAWDATA"
 )

运行此,错误日志显示 RAWDATA 列被视为 CHARACTER 数据类型。在这种情况下,如何将 RAWDATA 定义为 XMLType,以便正确插入 Oracle?

【问题讨论】:

标签: sql oracle sql-loader xmltype


【解决方案1】:

试试这样的: 在xml末尾添加逗号以标记分隔符(不能使用空格,因为xml之间可能包含空格)

然后创建您的 ctl 文件,如下所示

LOAD DATA
APPEND
INTO TABLE "TEST"."T_DATA_TEMP" fields OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
( ID terminated by "," ,
 SOURCE terminated by ",", 
 CATEGORY terminated by ",", 
 RAWDATA char(4000) terminated by ","
 )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    相关资源
    最近更新 更多