Я пытаюсь загрузить большие XML-файлы в Oracle 11g и разобрать их в новую таблицу (у меня есть SQL-запросы для этой части), но я не могу установить правильные настройки в управляющем файле SQL * Loader , Я в некотором роде новичок в Oracle, и после поиска решений в Интернете и инструкций Oracle, но не смог решить мою проблему, я прошу вашей помощи. Я использую Windows 10 и SQL Developer 4.0.3.16 для запуска запросов на создание таблиц в Oracle.
На этот вопрос был дан ответ в предыдущем посте, но предлагаемое решение не работает для меня ( При попытке загрузить сгусток в таблицу Oracle, загружая слишком много записей ), однако я не могу заставить их работать.
Я использовал оба контрольных файла с предыдущей веб-страницы, и только первая из них работает для меня с той же проблемой (один и тот же XML-код вставлен в несколько строк)
Я запускаю этот код в командной строке:
sqlldr rc_tables/xxuser@xx.xxx.xx.xx/euxxxx control='control_file.ctl' log = 'data_log.log'
Контрольный файл:
LOAD DATA
CHARACTERSET UTF8
INFILE 'C:\Users\...\NVTPOI_03_MEX_9701_001.xml'
REPLACE
INTO TABLE LEAD_REPORTING_CLOB
TRAILING NULLCOLS
(
XML LOBFILE(CONSTANT 'C:\...\NVTPOI_03_MEX_9701_001.xml') TERMINATED BY EOF
)
Моя созданная таблица:
CREATE TABLE "LEAD_REPORTING_CLOB"
(SHARED_XML CLOB);
Если я использую второй подход (Решение в предыдущем посте), я получаю сообщение об ошибке, если решаю запустить его без добавления поля FILENAME в таблицу:
SQL * Loader-416: предложение SDF для поля SHARED_XML в таблице LEAD_REPORTING_CLOB ссылается на несуществующее поле.
Контрольный файл:
LOAD DATA
INFILE *
REPLACE
INTO TABLE LEAD_REPORTING_CLOB
FIELDS TERMINATED BY ',' TRAILING NULLCOLS
(
SHARED_XML LOBFILE(FILENAME) TERMINATED BY EOF
)
BEGINDATA
'C:\Users\ivcrespo\Documents\projects\2018\oracle\NVTPOI_CHL_9500_001.xml'
Я также пробовал предыдущий контрольный файл с таблицей, в которой есть поле FILENAME char (100), но id ничего не загружал.
контрольный файл:
LOAD DATA
INFILE *
REPLACE
INTO TABLE LEAD_REPORTING_CLOB
FIELDS TERMINATED BY ',' TRAILING NULLCOLS
(
FILENAME,
SHARED_XML LOBFILE(FILENAME) TERMINATED BY EOF
)
BEGINDATA
'C:\Users\ivcrespo\Documents\projects\2018\oracle\NVTPOI_CHL_9500_001.xml'
SQL*Loader: Release 11.2.0.1.0 - Production on Wed Jul 4 08:39:35 2018
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Control File: control_file_xml_test2.ctl
Data File: control_file_xml_test2.ctl
Bad File: control_file_xml_test2.bad
Discard File: none specified
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional
Table LEAD_REPORTING_CLOB, loaded from every logical record.
Insert option in effect for this table: REPLACE
TRAILING NULLCOLS option in effect
Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
FILENAME FIRST * , CHARACTER
SHARED_XML DERIVED * EOF CHARACTER
Dynamic LOBFILE. Filename in field FILENAME
Table LEAD_REPORTING_CLOB:
0 Rows successfully loaded.
0 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
Space allocated for bind array: 16512 bytes(64 rows)
Read buffer bytes: 1048576
Total logical records skipped: 0
Total logical records read: 0
Total logical records rejected: 0
Total logical records discarded: 0
Run began on Wed Jul 04 08:39:35 2018
Run ended on Wed Jul 04 08:39:37 2018
Elapsed time was: 00:00:02.16
CPU time was: 00:00:00.03
Может кто-нибудь помочь мне исправить это? Примеры, которые я нашел в Интернете, обычно показывают контрольный файл, но не созданную таблицу. Есть ли ошибка в моей созданной таблице.
Это будет пример первого узла XML-файла (их может быть сотни в каждом файле):
<?xml version="1.0" encoding="UTF-8"?>
<DeliveryPackage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:saxon="http://saxon.sf.net/"
CreationTime="2018-06-18T13:07:40.196Z"
VersionNo="Q318">
<POI>
<Action>Add</Action>
<SupplierID>3</SupplierID>
<Identity>
<POI_Entity_ID>109034</POI_Entity_ID>
<Names>
<POI_Name Type="Official" Language_Code="SPA">
<Text>RAFAEL MURILLO VIDAL</Text>
</POI_Name>
</Names>
<Category_ID Type="NT">9701</Category_ID>
<Product_Type>7</Product_Type>
</Identity>
<Locations>
<Location>
<Address>
<ParsedAddress>
<ParsedStreetAddress>
<ParsedStreetName>
<StreetName Language_Code="SPA">RAFAEL MURILLO VIDAL</StreetName>
<StreetType Language_Code="SPA" Before="true" Attached="false">AVENIDA</StreetType>
</ParsedStreetName>
</ParsedStreetAddress>
<ParsedPlace>
<PlaceLevel2 Language_Code="SPA">VERACRUZ DE IGNACIO DE LA LLAVE</PlaceLevel2>
<PlaceLevel3 Language_Code="SPA">XALAPA</PlaceLevel3>
<PlaceLevel4 Language_Code="SPA">CUAUHTÉMOC</PlaceLevel4>
</ParsedPlace>
<Zone Language_Code="SPA" Type="KD">XALAPA DE ENRÍQUEZ</Zone>
<PostalCode>
<NT_Postal>91069</NT_Postal>
</PostalCode>
<CountryCode>MEX</CountryCode>
</ParsedAddress>
</Address>
<GeoPosition>
<Latitude>19.51919</Latitude>
<Longitude>-96.90392</Longitude>
</GeoPosition>
<MapLinkID>
<LinkID>919722915</LinkID>
<Side_of_Street>R</Side_of_Street>
<Percent_from_RefNode>30</Percent_from_RefNode>
</MapLinkID>
<Confidence>
<Match_Level>GeoPoint</Match_Level>
</Confidence>
</Location>
</Locations>
<Details>
<Camera>
<CameraType>Speed</CameraType>
<SpeedLimit Unit="KPH">60</SpeedLimit>
<DrivingDirection LinkHeading="T">110</DrivingDirection>
</Camera>
</Details>
</POI>
.
.
</DeliveryPackage>