본문 바로가기

[오라클 레퍼런스 함수] EXTRACTVALUE - XML 노드의 스칼라 값 추출

by ㅇㅍㅍ 2023. 8. 5.
[오라클 레퍼런스 함수] EXTRACTVALUE - XML 노드의 스칼라 값 추출
728x90

EXTRACTVALUE

 

노트: EXTRACTVALUE 함수는 사용이 중지되었습니다. 그러나 하위 호환성을 위해 아직 지원됩니다. 그러나 Oracle은 대신 XMLTABLE 함수 또는 XMLCAST 및 XMLQUERY 함수를 사용하는 것을 권장합니다. 자세한 정보는 XMLTABLE, XMLCAST 및 XMLQUERY를 참조하십시오.

 

구문

EXTRACTVALUE(XMLType_instance, XPath_string [, namespace_string ])

 

목적

EXTRACTVALUE 함수는 XMLType 인스턴스와 XPath 표현식을 인자로 받아 결과 노드의 스칼라 값을 반환합니다. 결과는 반드시 단일 노드이어야 하며 텍스트 노드, 속성 또는 엘리먼트일 수 있습니다. 결과가 엘리먼트인 경우, 해당 엘리먼트는 자식으로 단일 텍스트 노드를 가져야하며 이 값이 함수가 반환하는 값입니다. 초기 슬래시(initial slash)를 포함하여 절대(absolute) XPath_string을 지정하거나 초기 슬래시(initial slash)를 생략하여 상대(relative) XPath_string을 지정할 수 있습니다. 초기 슬래시(initial slash)를 생략하면 상대 경로의 컨텍스트가 기본적으로 루트 노드가 됩니다.

지정된 XPath가 두 개 이상의 자식을 가진 노드를 가리키거나 가리키는 노드에 텍스트 노드가 아닌 자식이 있으면 Oracle은 오류를 반환합니다. 선택 사항인 namespace_string은 접두사에 대한 기본 매핑 또는 네임스페이스 매핑을 지정하는 VARCHAR2 값을 해결해야 합니다. Oracle은 XPath 표현식을 평가할 때 이를 사용합니다.

XML 스키마를 기반으로 하는 문서의 경우 Oracle이 반환 값의 유형을 추론할 수 있다면 적절한 유형의 스칼라 값이 반환됩니다. 그렇지 않은 경우 결과는 VARCHAR2 유형입니다. XML 스키마를 기반으로 하지 않는 문서의 경우 반환 유형은 항상 VARCHAR2입니다.

 

참고:

Oracle Database Globalization Support Guide의 부록 C는 EXTRACTVALUE의 문자열 반환 값에 할당되는 정렬(collation) 결정 규칙에 대한 정보를 제공합니다.

 

예제

다음 예제는 EXTRACT (XML) 함수의 예제와 동일한 인수를 입력으로 사용합니다. EXTRACT 함수와 달리, XML 조각(fragment) 대신 XML 조각의 스칼라 값을 반환합니다.

SELECT warehouse_name, EXTRACTVALUE(e.warehouse_spec, '/Warehouse/Docks') "Docks"
  FROM warehouses e 
  WHERE warehouse_spec IS NOT NULL
  ORDER BY warehouse_name;

WAREHOUSE_NAME       Docks
-------------------- ------------
New Jersey
San Francisco        1
Seattle, Washington  3
Southlake, Texas     2

 


출처: 오라클 레퍼런스

원문 링크: Oracle EXTRACTVALUE 함수 문서

 

반응형

댓글