DBMS_XMLGEN

DBMS_XMLGEN 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명합니다. 예제는 XMLTYPE이 CLOB일 때를 기준으로 작성되♘으며 OBJECT인 경우엔 사용에 제약이 있을 수 있습니다.

개요

DBMS_XMLGEN은 쿼리를 입력으로 받고 해당 쿼리의 결과 집합을 XML 문서로 생성해주는 패키지입니다. 다음은 DBMS_XMLGEN 패키지 내에 정의된 상수입니다.

  • Conversion Flag

- 프로토타입

ENTITY_ENCODE    CONSTANT NUMBER := 0;
ENTITY_DECODE    CONSTANT NUMBER := 1;

- 인자 DBMS_XMLGEN.CONVERT 함수의 인자로 사용하는 flag에 대한 설명입니다.

인자
설명

ENTITY_ENCODE

데이터를 인코딩하여 결과를 출력

ENTITY_DECODE

데이터를 디코딩하여 결과를 출력

  • Null Handling Flag

- 프로토타입

DROP_NULLS    CONSTANT NUMBER := 0;
NULL_ATTR     CONSTANT NUMBER := 1;
EMPTY_TAG     CONSTANT NUMBER := 2;

- 인자 DBMS_XMLGEN.SETNULLHANDLING 프러시저의 인자로 사용하는 flag에 대한 설명입니다.

인자
설명

DROP_NULLS

NULL 값을 출력하지 않음

NULL_ATTR

NULL ATTRIBUTE로 출력

EMPTY_TAG

EMPTY ELEMENT로 출력

  • Null Handling Flag

- 프로토타입

- 인자 DBMS_XMLGEN.GETXML, GETXMLTYPE 프러시저의 인자로 사용되며, DTD 또는 Schema의 출 력 여부를 결정하는 값이지만, 실제로는 None 설정만 지원합니다.

타입

본 절에서는 DBMS_XMLGEN 패키지에서 제공하는 별도 정의된 타입을 설명합니다.

ctxHandle

ctxHandle은 NUMBER의 서브타입으로 특정 컨텍스트를 의미하는 값입니다.

ctxHandle 타입의 세부 내용은 다음과 같습니다.

  • 프로토타입

프러시저와 함수

본 절에서는 DBMS_XMLGEN 패키지에서 제공하는 프러시저와 함수를 알파벳 순으로 설명합니다.

CLOSECONTEXT

컨텍스트 핸들로부터 컨텍스트를 종료합니다.

CLOSECONTEXT 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

CLOSECONTEXT에 의해 닫힐 컨텍스트 핸들

  • 예제

CONVERT

XML 데이터를 escaped 또는 unescaped XML 데이터로 변환하는 함수입니다.

CLOB 타입을 입력으로 받으면 CLOB 타입을, VARCHAR 타입을 입력으로 받으면 VARCHR 타입을 반환합니다.

CONVERT 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

- CLOB인 경우

- VARCHAR인 경우

  • 파라미터

파라미터
설명

xmlData

CLOB이나 VARCHAR 타입의 인코딩이나 디코딩할 데이터

flag

인코딩인지 디코딩인지 여부를 결정하는 flag 값

  • ENTITY_ENCODE : 인코딩을 하는 경우 설정 (기본값)

  • ENTITY_DECODE : 디코딩을 하는 경우 설정

  • 예제

GETNUMROWSPROCESSED

GETXML 또는 GETXMLTYPE에 의해 처리된 로우의 수를 출력합니다.

GETNUMROWSPROCESSED 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

NEWCONTEXT 함수 호출에 의해 생성되는 컨텍스트 핸들

  • 예제

GETXML

주어진 ctxHandle로부터 CLOB 형태의 XML 문서를 생성합니다.

GETXML 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

NEWCONTEXT 함수 호출에 의해 생성되는 컨텍스트 핸들

dtdOrSchema

  • DTD 또는 Schema의 출력 여부를 결정하는 값

  • NONE 설정만 지원 가능

  • 예제

GETXMLTYPE

주어진 ctxHandle 또는 sqlQuery로부터 XMLType 형태의 XML 문서를 생성합니다.

GETXMLTYPE 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

NEWCONTEXT 함수 호출에 의해 생성되는 컨텍스트 핸들

sqlQuery

SQL 쿼리 문자열

dtdOrSchema

  • DTD 또는 Schema의 출력 여부를 결정하는 값

  • NONE 설정만 지원 가능

  • 예제

NEWCONTEXT

쿼리문으로부터 컨텍스트 핸들을 생성합니다.

컨텍스트 핸들은 GETXML 함수에서 XML 문서를 얻기 위해 사용됩니다.

NEWCONTEXT 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

query

XML 문서로 변경될 데이터를 출력하는 쿼리문 또는 커서

  • 예제

SETBINDVALUE

바인드 파라미터의 값을 설정합니다.

SETBINDVALUE 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctxHdl

실행한 쿼리의 컨텍스트 핸들

bindName

바인드 파라미터의 이름

bindValue

바인드 파라미터의 값

  • 예제

SETMAXROWS

GETXML 또는 GETXMLType에서 처리할 최대 로우의 수를 설정합니다.

SETMAXROWS 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

실행한 쿼리의 컨텍스트 핸들

maxRows

처리할 최대 로우의 수

  • 예제

SETNULLHANDLING

NULL 데이터 처리 방식을 설정합니다.

SETNULLHANDLING 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

NULL 데이터 처리 방식을 설정할 컨텍스트 핸들

flag

NULL 데이터 처리 방식을 결정하는 flag 값

  • DROP_NULLS : NULL 데이터를 표시하지 않음 (기본값)

  • NULL_ATTR : NULL ATTRIBUTE로 표현

  • EMPTY_TAG : EMPTY ELEMENT로 표현

  • 예제

SETROWTAG

GETXML 또는 GETXMLType의 XML Output의 Row Tag 이름을 설정합니다.

SETROWTAG 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

NEWCONTEXT 함수 호출에 의해 실행된 컨텍스트 핸들

tag

설정할 Row Tag 이름

  • 예제

SETROWSETTAG

GETXML 또는 GETXMLType의 XML Output의 Row Set Tag 이름을 설정합니다.

SETROWSETTAG 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

NEWCONTEXT 함수 호출에 의해 생선된 컨텍스트 핸들

tag

설정할 Row Set Tag 이름

  • 예제

SETSKIPROWS

GETXML 또는 GETXMLType에서 처리하지 않고 무시할 로우의 수를 설정합니다.

SETSKIPROWS 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

ctx

실행한 쿼리의 컨텍스트 핸들

skipRows

무시할 로우의 수

  • 예제

Last updated