oracle - XMLType 从单个单元格中提取唯一 ID

你能帮我解决以下问题吗?

我只需要一个 person_number 一次,例如。 1000142 但我得到 10001421000142 像这样。

因为我在 XML 单元格中的 values 有重复号码,所以我只想提取一个唯一的人号。

select xmltype('<?xml version="1.0"?>

<ROWSET> 

<ROW0> <PERSON_NUMBER>1000142</PERSON_NUMBER> <LOAN_1>25000</LOAN_1> <LOAN_2>26000</LOAN_2>
</ROW0>

<ROW0> <PERSON_NUMBER>1000142</PERSON_NUMBER> </ROW0> <LOAN_1>25000</LOAN_1> <LOAN_2>26000</LOAN_2> 
</ROW0>

</ROWSET>').extract( '//PERSON_NUMBER/text()' ).getstringval() p#
from dual;

回答1

根据您的 https://stackoverflow.com/revisions/72291602/1 问题(其中 XML 对单个根元素而不是元素林有效),您可以使用:

select xmltype(
  '<?xml version="1.0"?>
  <ROWSET>
    <ROW>
      <PERSON_NUMBER>1000142</PERSON_NUMBER>
      <PERSON_NUMBER>1000142</PERSON_NUMBER>
      <LOAN_1>25000</LOAN_1>
      <LOAN_2>26000</LOAN_2>
    </ROW>
  </ROWSET>').extract( '//PERSON_NUMBER[1]/text()' ) .getstringval() p#
from dual;

哪个输出:

P#
1000142

db<>小提琴https://dbfiddle.uk/?rdbms=oracle_21&fiddle=3ce233fb2e40e0e9c96e83fb9f0914a6

相似文章