Section 03 XML northwind DB categories xml xml
Section 03 XML 템플릿 사용 northwind DB에서 제품목록을 보여주는 템플릿생성 예 categories. xml <? xml version='1. 0' ? > <categorylist xmlns: sql='urn: schemas-microsoft-com: xml-sql'> <sql: query> SELECT categoryid, categoryname FROM categories FOR XML AUTO, ELEMENTS </sql: query> </categorylist> [그림 12 -38] XML 템플릿을 IIS 웹 서버를 통해 실행한 결과 25
Section 03 XML 템플릿 사용 템플릿 확장: 파라미터 추가 예 파라미터를 사용해서 카테고리 번호를 넘겨 주고, 해당 카테고리 의 제품 목록을 출력하는 XML 템플릿 products. xml <? xml version='1. 0' ? > <productlist xmlns: sql='urn: schemas-microsoft-com: xml-sql'> <sql: header> <sql: param name='categoryid'>1</sql: param> </sql: header> <sql: query> SELECT productid, productname, unitprice FROM products WHERE categoryid = @categoryid FOR XML AUTO, ELEMENTS </sql: query> </productlist> [그림 12 -39] 템플릿 실행 결과(카테고리 번호=2) 27
Section 04 Open. XML을 사용한 XML 데이터 저장 Open. XML을 이용한 XML 문서 저장 33
Section 04 Open. XML을 사용한 XML 데이터 저장 XML 문서에서 지원하는 파라미터 데이터형 데이터 형 최대 크기 char 8000문자 varchar 8000문자 nchar 4000문자 nvarchar 4000문자 Text 2, 147, 483, 647 문자 n. Text 1, 073, 741, 823 문자 34
Section 04 Open. XML을 사용한 XML 데이터 저장 Open. XML 함수로 로우셋 저장 Open. XML은 XML 문서로부터 데이터를 포함하는 로우셋을 반환 로우셋의 로우와 컬럼은 T-SQL에 지정한 파라미터에 의해 결정 Open. XML 함수 정의 OPENXML(i. Doc, rowpattern, flags) [WITH (rowsetschema [colpatterns] | tablename)] OPENXML (@i. Tree, 'Order', 1) WITH (Order. ID INTEGER, Customer. ID n. CHAR(5), Employee. ID INTEGER, Order. Date DATETIME) Open. XML 함수 사용 예 35
[실습] Open. XML을 이용한 XML 데이터 저장 (1/3) ① XML 문서를 저장할 데이터베이스와 테이블을 생성 Create Database XMLDB ; 데이터베이스 생성 Create Table Imageinfo ( id int, title varchar(50), category varchar(50), rcolor int, gcolor int, bcolor int ) 테이블 생성 36
[실습] Open. XML을 이용한 XML 데이터 저장 (2/3) ② 간단한 SQL 질의문을 Open. XML을 사용하여 작성 DECLARE @xml. DATA VARCHAR(2000) 앞에서 생성한 테이블이 SET @xml. DATA = ' 존재하기 때문에 INSERT <? xml version="1. 0"? > 구문을 사용하여 생성된 <images> 테이블에 XML 문서의 속 <image rcolor="255" gcolor="192" bcolor="38"> <id> 001</id> 성을 추출해서 저장한다. <title> shirt </title> <category> cloth </category> </images> ' -- XML 문서 파싱 DECLARE @i. Tree INTEGER EXEC sp_xml_preparedocument @i. Tree OUTPUT, @xml. DATA INSERT imageinfo (id, title, category, rcolor, gcolor, bcolor) SELECT id, title, category, rcolor, gcolor, bcolor FROM OPENXML(@i. Tree, 'images/image', 1) WITH ( id INTEGER 'id', title varchar(50) 'title', category varchar(50) 'category', rcolor INTEGER '@rcolor', gcolor INTEGER '@gcolor', bcolor INTEGER '@bcolor') 37
Thank you
- Slides: 39