Как использовать XMLType в управляющем файле SQL*Loader?
У меня есть 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?
0 ответов
Попробуйте что-то вроде этого: добавьте запятую в конце 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 ","
)