XML 대량 로드 구성 요소를 사용하여 XML을 SQL Server로 가져오는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 316005 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR316005
모두 확대 | 모두 축소

이 페이지에서

요약

XML 대량 로드 구성 요소를 사용하여 XML로 표시된 데이터를 Microsoft SQL Server 2000 데이터베이스로 로드할 수 있습니다. 이 문서에서는 XML 데이터를 데이터베이스 테이블로 로드하는 데 필요한 단계에 대해 설명합니다.

참고 SQL Server 2005를 사용하는 경우 SQL Server 2005 온라인 설명서의 "XML Bulk Load Examples" 항목을 참조하십시오.

요구 사항

이 문서의 단계를 수행하려면 아래와 같은 조건을 갖추어야 합니다.
  • XML for SQL Server 2000(SQLXML) 웹 릴리스 1 이상
필요한 사전 지식:
  • XML에 대한 지식

데이터를 수신하는 테이블 만들기

다음 단계를 수행하여 XML 대량 로드 구성 요소에서 처리하는 데이터를 수신하는 테이블을 만듭니다.
  1. SQL Server에서 MyDatabase라는 데이터베이스를 만듭니다.
  2. SQL 쿼리 분석기를 연 다음 데이터베이스를 MyDatabase로 변경합니다.
  3. 쿼리 분석기에서 다음 SQL 문을 실행하여 MyDatabaseCustomer 테이블을 만듭니다.
    USE MyDatabase
    CREATE TABLE Customer (
       CustomerId INT PRIMARY KEY,
       CompanyName NVARCHAR(20),
       City NVARCHAR(20))
    					

XML 데이터 원본 파일 만들기

다음은 예제 데이터 원본 코드입니다. 이 XML을 메모장에 붙여넣은 다음 C:/Customers.xml 파일로 저장합니다.
<ROOT>
  <Customers>
    <CustomerId>1111</CustomerId>
    <CompanyName>Sean Chai</CompanyName>
    <City>NY</City>
  </Customers>
  <Customers>
    <CustomerId>1112</CustomerId>
    <CompanyName>Tom Johnston</CompanyName>
    <City>LA</City>
  </Customers>
  <Customers>
    <CustomerId>1113</CustomerId>
    <CompanyName>Institute of Art</CompanyName>
  </Customers>
</ROOT>
				

매핑 스키마 파일 만들기

다음은 데이터 원본 XML의 형식을 데이터베이스에 있는 Customer 테이블의 형식에 매핑하는 데 사용되는 파일입니다. 이 XML을 메모장에 붙여넣은 다음 C:/Customermapping.xml 파일로 저장합니다.
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"  
        xmlns:sql="urn:schemas-microsoft-com:xml-sql" > 

   <ElementType name="CustomerId" dt:type="int" />
   <ElementType name="CompanyName" dt:type="string" />
   <ElementType name="City" dt:type="string" />

   <ElementType name="ROOT" sql:is-constant="1">
      <element type="Customers" />
   </ElementType>

   <ElementType name="Customers"  sql:relation="Customer">
      <element type="CustomerId"  sql:field="CustomerId" />
      <element type="CompanyName" sql:field="CompanyName" />
      <element type="City"        sql:field="City" />
   </ElementType>

</Schema>
				

XML 대량 로드 구성 요소를 실행하는 VBScript 프로그램 만들기

다음은 "매핑 스키마 파일 만들기" 절에 설명된 매핑 스키마를 사용하여 "XML 데이터 원본 파일 만들기" 절에서 만든 세 레코드를 "데이터를 수신하는 테이블 만들기" 절에서 만든 테이블에 삽입하는 XML 대량 로드 구성 요소를 사용하는 스크립트입니다. 이 VBScript 코드를 메모장에 붙여넣은 다음 C:\Insertcustomers.vbs 파일로 저장합니다.
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data source=MySQLServer;database=MyDatabase;uid=MyAccount;pwd=MyPassword"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "c:\customermapping.xml", "c:\customers.xml"
Set objBL = Nothing
				
스크립트가 현재 사용자의 SQL Server 설치에서 작동하도록 코드의 두 번째 줄에 있는 ConnectionString 자격 증명을 수정합니다. 두 번째 줄을 수정하지 않으면 스크립트 실행 후 다음과 같은 오류 메시지가 나타납니다.
데이터 원본에 연결하는 동안 오류가 발생했습니다.

VBScript 프로그램 실행

VBScript 프로그램 C:\Insertcustomers.vbs를 실행하여 세 고객 레코드를 Customer 테이블에 삽입합니다.

작동 여부 확인

SQL 쿼리 분석기에서 MyDatabase 데이터베이스로 전환한 후 다음 쿼리를 실행합니다.
SELECT * FROM Customer
				
이제 "XML 데이터 원본 파일 만들기" 절에서 만든 세 레코드가 Customer 테이블에 존재합니다.

다른 방법

XML 대량 로드 구성 요소로 수행할 수 있는 다른 작업은 다음과 같습니다.
  • XML 스키마 파일에 지정된 관계를 사용하여 XML 문서를 여러 테이블에 매핑
  • 대량 로드 전에 테이블 스키마 생성
  • 스트림에서 대량 로드
  • 오버플로 열의 대량 로드



참조

SQLXML 온라인 설명서 항목: "Performing Bulk Load of XML Data"





Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 316005 - 마지막 검토: 2011년 5월 17일 화요일 - 수정: 5.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
키워드:?
kbsqlmanagementtools kbhowtomaster KB316005

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com