database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 29633 게시물 읽기
No. 29633
[질문]리턴된 값을 XML형식으로 뿌려줄려면?
작성자
류호태(ryu190)
작성일
2007-02-02 09:48
조회수
2,010

SQL에서 그 값을 리턴된 값을 XML형식으로 뿌려줄려면 어떻게 해야 되나요?


APP(TOMCAT) 셋팅이나 등등 그런 것도 해야 될까요?


아시는 분들 도움 좀 부탁합니다.




이 글에 대한 댓글이 총 1건 있습니다.

데이타베이스 XML 기능

 

인터넷상에서 일어나는 모든 정보 교환의 표준으로서 XML의 역할이 점점 더 커지고 있다. 'XML

옵션이 아니라 대세다.'라는 말을 쉽게 들을 수 있는데, 데이타베이스에서 XML을 읽고 쓸 수 있고,

또 기존 애플리케이션에 XML 데이타를 통합할 수 있는 기능은 필수적이다.

 

이러한 XML을 다른 데이타타입처럼 쉽게 다룰 수 있게 도와주는 것이 XDK(XML Developer's Kit) 이며,

Oracle9i에서는 몇 개의 컴포넌트가 더 추가되었고 기존의 컴포넌트도 그 기능이 더 향상되었다. 가장

큰 변화는 XML Schema 1.0을 지원하는 것인데, 새로운 컴포넌트는 XML Schema Processors와

XDK Java Beans(DBAccess Class, DBViewer Bean)이다.

 

또한 Oracle9i에서 가장 눈에 띄는 기능으로, 새롭게 추가된 데이타타입으로 XMLTYPE을 들 수 있다.

XDK는 현재 http://otn.oracle.co.kr에서 무료로 다운로드 받을 수 있으며, 여러 샘플을 해당

사이트에서 접할 수 있을 것이다. 여기에서는 Oracle9i에 XML을 특정 데이타타입으로 저장할 수

있는 기능인 XMLTYPE에 대해 설명하기로 하자.

 

XMLType

 

Oracle9i에서 XMLType이라는 새로운 데이타타입을 제공한다. XMLType은 XML 문서를 CLOB처럼

저장하며, Contains operator와 XPath-like syntax를 써서 Oracle9i Text (interMedia Text) 인덱스를

사용할 수 있다. 현재 버전에서는 서버단에서만 PL/SQL, SQL을 사용해서 XMLType을 이용할 수 있으며,

현재는 CLOB으로만 저장되지만, 추후에는 BLOBs, NCLOBs 등으로 확장될 것이다.

그러면, 사용 예를 살펴보기로 하자.

 

<리스트5>는 XMLType 열을 가진 테이블에 XML 문서를 삽입하고, extract(), existsNode(),

getClobVal(), getStringVal()과 같은 함수를 사용하여 XML 문서를 읽는 예제이다.

 

/*List 5 시작 */
SQL> CREATE TABLE po_tab (
	2	pono	number primary key, 
	3	orderdate	date,  
	4	poxml	sys.XMLType);

SQL>	insert into po_tab values 
	(100, TO_DATE('February 07, 2001', 'Month dd, YYYY'),
sys.xmltype.createXML
	(' PO_1
	   '));

SQL>	insert into po_tab values 
	(200, TO_DATE('February 07, 2001', 'Month dd, YYYY'), 
sys.xmltype.createXML
	('PO_2'));

SQL>	insert into po_tab values 
	(300, TO_DATE('February 07, 2001', 'Month dd, YYYY'), 
sys.xmltype.createXML
	('한글'));

SQL>	select e.poxml.getclobval() from po_tab e;

E.POXML.GETCLOBVAL()
------------------------------------------------------------------
PO_1
PO_2
한글

SQL> select e.poxml.extract('/PO/PONAME').getClobVal() 
	2 from po_tab e 
	3 where e.poxml.existsNode('/PO/@pono') = 1 and     
	4 e.poxml.extract('/PO/@pono').getStringVal() = '100' and       
	5 e.poxml.extract('/PO/PONAME').getStringVal() like '%PO%';

E.POXML.EXTRACT('/PO/PONAME').GETCLOBVAL()
------------------------------------------------------------------
PO_1

 테이블에 XML 문서 저장 및 읽기
오라클님이 2007-02-06 12:56에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
29637Trigger에 대해서 질문드립니다. [1]
박환용
2007-02-02
1104
29636ROIIUP에 대해서 잘 안되네요.. [4]
김지연
2007-02-02
1588
29634rownum을 이용한 sorting에 대한 질문 [3]
서찬
2007-02-02
1511
29633[질문]리턴된 값을 XML형식으로 뿌려줄려면? [1]
류호태
2007-02-02
2010
29632pc 컴파일시 에러 확인 부탁 드립니다. [1]
돌풍
2007-02-02
1251
29631이 두개의 쿼리의 차이점 좀 알려주세요? [6]
나그네
2007-02-02
3650
29630START WITH 계층형 질의 구조에서 삭제 방법.. [2]
궁금이
2007-02-02
2312
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다