포스팅 목차
[오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크]
o UPDATEXML
문법
updatexml::=
목적
UPDATEXML함수는 XMLType인스턴스와 XPath값의 쌍으로 인자를 지정하여서 업데이트된 값을 가지는 XMLType 인스턴스를 반환한다.
만약 XPath_string가 XML요소라면, 상응하는 value_expr은 XMLType 인스턴스이다. 만약 XPath_string가 속성 또는 텍스트 노드라면, value_expr은 임의의 스칼라 데이터 타입니다. 각 XPath_string의 타겟의 데이터 타입과 그에 상응하는 value_expr은 일치할 필요가 있다. 옵션 namespace_string는 접두사에 대한 기본적 맵핑 또는 namespace맵핑을 지정하는 VARCHAR2 값을 해결할 필요가 있다. 오라클 데이터 베이스는 XPath 식을 평가할 때 이용된다.
만약 XML 요소를 Null로 업데이트된다면, 오라클은 속성과 요소의 자식을 삭제하고, 요소는 공백으로 된다. 만약 요소의 텍스트 노드를 Null로 업데이트한다면, 오라클은 요소의 텍스트 값을 제거하고, 요소 자체는 유지되고, 공백으로 된다.
대부분의 경우에 이 함수는 메모리 내의 XML 문서를 실체화하고, 그 값을 업데이트한다. 그러나, UPDATEXML은 object-relational열에서 UPDATE문장에 대해 최적화되고, 함수는 열에서 직접적으로 값을 업데이트한다. 이 최적화는 다음 조건이 필요하다.
- XMLType_instance는 UPDATE.. SET구문에서 열과 같을 필요가 있다.
- XPath_string스칼라 콘텐츠가 될 필요가 있다.
수정된 결과를 XML 파일에 반영하는 함수인 updateXML
예제
다음 예제는 샘플 스키마 OE에서 San Francisco warehouse의 DOCK의 수를 4로 업데이트한다. 이것은 XMLType타입의 warehouse_spce열을 가진다.
Oracle Program |
SELECT warehouse_name,
EXTRACT(warehouse_spec, '/Warehouse/Docks') "Number of Docks"
FROM warehouses
WHERE warehouse_name = 'San Francisco';
Results |
WAREHOUSE_NAME Number of Docks
-------------------- --------------------
San Francisco <Docks>1</Docks>
Oracle Program |
UPDATE warehouses
SET warehouse_spec = UPDATEXML(warehouse_spec, '/Warehouse/Docks/text()',4)
WHERE warehouse_name = 'San Francisco';
Results |
1 row updated.
Oracle Program |
SELECT warehouse_name,
EXTRACT(warehouse_spec, '/Warehouse/Docks') "Number of Docks"
FROM warehouses
WHERE warehouse_name = 'San Francisco';
Results |
WAREHOUSE_NAME Number of Docks
-------------------- --------------------
San Francisco <Docks>4</Docks>
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 |
'오라클 게시판 > 오라클 함수' 카테고리의 다른 글
【오라클 SQL 함수】 USER 함수 (0) | 2021.10.24 |
---|---|
【오라클(Oracle) SQL 함수】 UPPER 함수 (0) | 2021.10.24 |
【오라클(Oracle) SQL 함수】 UNISTR 함수 (0) | 2021.10.24 |
【오라클 SQL 함수】 UID 함수 (0) | 2021.10.24 |
【오라클(Oracle) SQL 함수】 TZ_OFFSET 함수 (0) | 2021.10.24 |
댓글