Я пытаюсь выполнить запрос выбора следующим образом, где я передаю небольшой xml как xmltype.Запрос SELECT на xmltable
SELECT x.PO_STEP,x.INSTL_ID,X.INSTL_LOC_CODE from xmltable
(
XMLNAMESPACES('namespace1' as "v20", 'namespace2' as "v201"),
'/v20:ProductionOrder/v201:ProductionOrderSteps/v201:ProductionOrderStep/v201:POStepDetails/v201:InstallationDetails/*[text()]'
PASSING xmltype(' <v20:ProductionOrder xmlns="***something***" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v20="namespace1">
<v201:ProductionOrderSteps xmlns:v201="namespace2">
<v201:ProductionOrderStep>
<v201:POStepDetails>
<v201:PO_STEP>1L</v201:PO_STEP>
<v201:InstallationDetails>
<v201:INSTL_ID>032</v201:INSTL_ID>
<v201:INSTL_LOC_CODE>N</v201:INSTL_LOC_CODE>
</v201:InstallationDetails>
<v201:InstallationDetails>
<v201:INSTL_ID>000</v201:INSTL_ID>
<v201:INSTL_LOC_CODE />
</v201:InstallationDetails>
<v201:InstallationDetails>
<v201:INSTL_ID>000</v201:INSTL_ID>
<v201:INSTL_LOC_CODE />
</v201:InstallationDetails>
<v201:InstallationDetails>
<v201:INSTL_ID>000</v201:INSTL_ID>
<v201:INSTL_LOC_CODE />
</v201:InstallationDetails>
</v201:POStepDetails>
</v201:ProductionOrderStep>
<v201:ProductionOrderStep>
<v201:POStepDetails>
<v201:PO_STEP>1B</v201:PO_STEP>
<v201:InstallationDetails>
<v201:INSTL_ID>001</v201:INSTL_ID>
<v201:INSTL_LOC_CODE>N</v201:INSTL_LOC_CODE>
</v201:InstallationDetails>
<v201:InstallationDetails>
<v201:INSTL_ID>000</v201:INSTL_ID>
<v201:INSTL_LOC_CODE />
</v201:InstallationDetails>
<v201:InstallationDetails>
<v201:INSTL_ID>000</v201:INSTL_ID>
<v201:INSTL_LOC_CODE />
</v201:InstallationDetails>
</v201:POStepDetails>
</v201:ProductionOrderStep>
</v201:ProductionOrderSteps>
</v20:ProductionOrder>')
COLUMNS
PO_STEP VARCHAR2(20) PATH './parent::*/parent::*/v201:PO_STEP',
INSTL_ID VARCHAR2(30) PATH '//v201:INSTL_ID',
INSTL_LOC_CODE VARCHAR2(30) PATH '//v201:INSTL_LOC_CODE'
)x
, но я получаю следующий результат
PO_STEP INSTL_ID INSTL_LOC_CODE
1L null null
1L null null
1L null null
1L null null
1L null null
1B null null
1B null null
1B null null
1B null null
Я не могу понять, что случилось с Xpath, выполняется ли принят XPath неправильно рядом колонн или XPath, написанные на вершине неправильно. Я использую разработчику Oracle SQL
Большое спасибо. А что, если мне нужно только увидеть первое вхождение каждого, т.е. выход должен выглядеть следующим образом 1L 032 N 1B 001 N –
ArpanMona
Я редактировал ответ о том, как получить только первое появление. – SomeDude
Спасибо тонну ... – ArpanMona