Я работаю над Oracle 11g с пары месяцев, поэтому не хватает опыта, спасибо, что помогли мне в этом. Я пытаюсь прочитать большой XML-файл и получить только 2 значения этого, дело в том, что документ, который я прочитал, очень велик. Итак, позвольте мне объяснить вам, что я делаю:ЭКСТРАКТ XML В ORACLE 11 G ИСПОЛЬЗОВАНИЕ ОПЕРАЦИЙ XMLTYPE
Создание таблицы для хранения XML:
CREATE TABLE xml_table OF XMLType;
Затем я прочитал документ для получения его в таблицу:
PROCEDURE prc_insertXmlFile(dir VARCHAR2, file VARCHAR2) IS
BEGIN
INSERT INTO xml_table
VALUES (XMLType(bfilename(dir, file),
nls_charset_id('AL32UTF8')));
COMMIT;
END;
сейчас это выдержка из документа (вставка была нормальна):
<?xml version="1.0" encoding="UTF-8"?>
<Report xsi:schemaLocation="VehicleTripSummary http://lol/someServer?%2lol4%2FVehicleTripSummary&rs%3ACommand=Render&rs%3AFormat=XML&rs%3ASessionID=prfwnw554uqweiz0c45eviftfu5&rc%3ASchema=True" Name="VehicleTripSummary" txtReportTitle="Vista Viaje por Vehículo (Resumen)" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="VehicleTripSummary">
<table1 textbox8="Publicado por:" User_Description="Operaciones qwwwq" textbox5="Grupo de Vehículo:" VehicleGroup_Description="Grupo de Vehiculos-qweqe qweqe." textbox16="Período:" LocalTimestampRange="2015-02-03 00:00 .. 2015-02-03 23:59"/>
<tblTripDetails Distance_Abbreviation="Distance(Km)" textbox17="Duración" textbox25="Ultima Conocida Odómetro" Textbox27="Ultima Conocida Hs. Motor" textbox47="Descripción de Vehículo" textbox1="Registro" textbox2="Núm. de Viajes" textbox3="Total" textbox11="Promedio" textbox19="Total" textbox14="Promedio" textbox18="Núm. de Choferes" textbox20="Fecha" textbox24="Lectura" Textbox28="Fecha" Textbox21="Lectura" textbox42="Totales:" textbox44="1987" textbox45="7040" textbox48="287:11:06">
<Detail_Collection>
<Detail Vehicle_Description_1="A144 CL149627" Vehicle_Registration="CL149627" NoOfTrips="0" TotalDistance="0" AverageDistance="0" TotalDuration_Description="00:00:00" AverageDuration_Description="00:00:00" NoOfDrivers="0" LastKnownOdometer="2015-01-30 10:02:58" LastKnownOdometerLocalTimestamp="46" Textbox29="--" Textbox31="--"/>
<Detail Vehicle_Description_1="A38 CL124335 " Vehicle_Registration="CL124335" NoOfTrips="3" TotalDistance="0" AverageDistance="0" TotalDuration_Description="00:08:03" AverageDuration_Description="00:02:41" NoOfDrivers="0" LastKnownOdometer="2015-02-04 16:13:35" LastKnownOdometerLocalTimestamp="283252" Textbox29="--" Textbox31="--"/>
.
.
.
</Detail_Collection>
</tblTripDetails>
</Report>
сейчас, что я хочу прочитать это, чтобы получить значение Datail/Vehicle_Registration и Datail/TotalDistance. I'm делать это:
SELECT extractValue(OBJECT_VALUE,'/Report/tblTripDetail/Detail_Collection/Detail[1]//Vehicle_Registration') Detalles
FROM xml_table;
Но я не мог получить то, что данные, которые я хотел.
Заранее спасибо.
Проверьте это: XMLTYPE OPERATIONS
Пожалуйста, удалите колпачки и покажите нам, что вы получаете, чтобы мы знали, что на самом деле происходит. – cujo
Извините, сэр, на самом деле я просто получаю строку без данных, когда я выполнял запрос. –