Кто-нибудь знает, как это сделать? Я знаю, что есть лучший способ загрузки XML-данных в Oracle без использования SQL * Loader, но мне просто любопытно, как это сделать, используя его. У меня уже есть код, который может загружать данные XML в БД, однако он не запустится, если в файле XML есть значения, содержащие CDATA ...
Ниже приведен код контрольного файла, который работает, если значения не являются CDATA ...
LOAD DATA
INFILE FRATS.xml "str '</ROW>'"
APPEND
INTO TABLE "FRATERNITIES"
(
DUMMY FILLER TERMINATED BY "<ROW>",
THE_CODE SEQUENCE (MAX, 1),
DUMMY2 FILLER TERMINATED BY "</COLUMN>",
STORE_NN_KJ ENCLOSED BY '<COLUMN NAME="THE_NAME">' AND '</COLUMN>',
STAFF_COUNT ENCLOSED BY '<COLUMN NAME="THE_COUNT">' AND '</COLUMN>'
)
Вот файл XML:
<?xml version='1.0' encoding='MS932' ?><br>
<RESULTS><br>
<ROW><br>
<COLUMN NAME="THE_CODE">777</COLUMN><br>
<COLUMN NAME="THE_NAME">CharlieOscarDelta</COLUMN><br>
<COLUMN NAME="THE_COUNT">24</COLUMN><br>
</ROW><br>
</RESULTS>
Вот файл XML со значениями CDATA. Мой контрольный файл не будет работать с ним ...:
<?xml version='1.0' encoding='MS932' ?><br>
<RESULTS><br>
<ROW><br>
<COLUMN NAME="THE_CODE"><![CDATA[777]]></COLUMN><br>
<COLUMN NAME="THE_NAME"><![CDATA[CharlieOscarDelta]]></COLUMN><br>
<COLUMN NAME="THE_COUNT"><![CDATA[24]]></COLUMN><br>
</ROW><br>
</RESULTS>