Multiple rows/values
444743Sep 13 2008 — edited Sep 16 2008How do I extract values if one of the tabs can occur multiple times?
Here is my xml structure:
JobPositionPosting > dsSearch > dsId > "technis"
JobPositionPosting > dsSearch > dsLocation > dsLongitude > "-889558"
JobPositionPosting > dsSearch > dsLocation > dsLatitude > "404743"
JobPositionPosting > JobPosting > JobPositionPosting > JobPositionPostingId > "1001117543"
JobPositionPosting > JobPosting > JobSpecific > DigestedSkills > Skill > "automation"
JobPositionPosting > JobPosting > JobSpecific > DigestedSkills > Skill > "c"
JobPositionPosting > JobPosting > JobSpecific > DigestedSkills > Skill > "c#"
JobPositionPosting > JobPosting > JobSpecific > DigestedSkills > Skill > "c++"
JobPositionPosting > JobPosting > JobSpecific > DigestedSkills > Skill > "clearcase"
JobPositionPosting > JobPosting > JobSpecific > DigestedSkills > Skill > "design"
JobPositionPosting > JobPosting > JobSpecific > DigestedSkills > Skill > "development"
If I run the query below it runs just fine.
select
extractValue(object_value, '/JobPositionPosting/dsSearch/dsId') dsId ,
extractValue(object_value, '/JobPositionPosting/dsSearch/dsLocation/dsLongitude') LONGIT ,
extractValue(object_value, '/JobPositionPosting/dsSearch/dsLocation/dsLatitude') Lat
from DANB.invoicexml_tbl
But when I try to include skills it blows up with
select
extractValue(object_value, '/JobPositionPosting/dsSearch/dsId') dsId ,
extractValue(object_value, '/JobPositionPosting/dsSearch/dsLocation/dsLongitude') LONGIT ,
extractValue(object_value, '/JobPositionPosting/dsSearch/dsLocation/dsLatitude') Lat,
extractValue(object_value, '/JobPositionPosting/JobPosting/JobSpecific/DigestedSkills/Skill') skill
from DANB.invoicexml_tbl
ORA-19025: EXTRACTVALUE returns value of only one node
Looks like having skil there multiple times is a problem.