본문 바로가기
오라클 게시판/오라클 함수

[오라클 SQL 함수] UPDATEXML 함수

by 기서무나구물 2021. 10. 24.

포스팅 목차

    [오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크]

     

    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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글