월드버텍 블로그

내일을 향한 준비~~

Archive for March 14th, 2011

/**********************************************************************************************
배열 저장 및 불러오기 스크립트 예제
작성자   : 이계은 차장(4Silver@paran.com)
작성일자 : 2011.03.11
주의 사항:
**********************************************************************************************/
USE tempdb  –> 권한 있는 DB로 설정
GO

IF  EXISTS (SELECT * FROM SYS.OBJECTS WHERE NAME = ‘ARRAY_TEST’)
DROP TABLE ARRAY_TEST
GO
CREATE TABLE ARRAY_TEST
(
ARRAY_INF XML
)
GO

IF  EXISTS (SELECT * FROM SYS.OBJECTS WHERE NAME = ‘USP_ARRAY_TEST_INSERT’)
DROP PROC USP_ARRAY_TEST_INSERT
GO
CREATE PROC  USP_ARRAY_TEST_INSERT
AS
BEGIN

DECLARE @ARRAY_TBL TABLE
(
COL1 VARCHAR(100)
,COL2 VARCHAR(100)
,COL3 VARCHAR(100)
,COL4 VARCHAR(100)
,COL5 VARCHAR(100)
,COL6 VARCHAR(100)
,COL7 VARCHAR(100)
,COL8 VARCHAR(100)
)

–데이터 삭제
DELETE ARRAY_TEST

–샘플 데이터 입력 (5 X 8)
INSERT @ARRAY_TBL(COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8)
VALUES(1,2,3,4,5,6,7,8)

INSERT @ARRAY_TBL(COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8)
VALUES(2,4,6,8,10,12,14,16)

INSERT @ARRAY_TBL(COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8)
VALUES(3,6,9,12,15,18,21,24)

INSERT @ARRAY_TBL(COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8)
VALUES(4,8,12,16,20,24,28,32)

INSERT @ARRAY_TBL(COL1,COL2,COL3,COL4,COL5,COL6,COL7,COL8)
VALUES(5,10,15,20,25,30,35,40)
  

–테이블-> XML 변환  
DECLARE @RETXML XML 
 
SET @RETXML=
(SELECT   *
FROM  @ARRAY_TBL  AS   ARRAY_TBL
FOR XML AUTO,ROOT(‘root’))
  
–XML 데이터 입력  
INSERT ARRAY_TEST VALUES (@RETXML)
  
END
GO
–XML 생성 프로시져 실행
EXEC USP_ARRAY_TEST_INSERT

GO
SELECT * FROM ARRAY_TEST
GO

–데이터 가져오기 XML-> 테이블
IF  EXISTS (SELECT * FROM SYS.OBJECTS WHERE NAME = ‘USP_ARRAY_TEST_SELECT’)
DROP PROC USP_ARRAY_TEST_SELECT
GO
CREATE PROC  USP_ARRAY_TEST_SELECT
AS
BEGIN
DECLARE @idoc int
DECLARE @doc xml

SELECT @doc= ARRAY_INF
FROM  ARRAY_TEST

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

SELECT    *
FROM       OPENXML (@idoc, ‘/root/ARRAY_TBL’,1)
            WITH (COL1  VARCHAR(100)
                  ,COL2 VARCHAR(100)
                  ,COL3 VARCHAR(100)
                  ,COL4 VARCHAR(100)
                  ,COL5 VARCHAR(100)
                  ,COL6 VARCHAR(100)
                  ,COL7 VARCHAR(100)
                  ,COL8 VARCHAR(100))

END

Subscribe to 월드버텍 블로그