XMLType 从单个单元格中提取唯一 ID
XMLType Extract Unique ID from Single Cell
你能帮我解决以下问题吗?
我只需要 person_number 一次,例如。 1000142 但我这样得到 10001421000142。
因为我在XML单元格中的值有重复的数字,所以我只想提取一个唯一的人号。
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;
根据您的 initial version 问题(其中 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<>fiddle here
你能帮我解决以下问题吗?
我只需要 person_number 一次,例如。 1000142 但我这样得到 10001421000142。
因为我在XML单元格中的值有重复的数字,所以我只想提取一个唯一的人号。
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;
根据您的 initial version 问题(其中 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<>fiddle here