데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

아래 프로시저는 SELECT 내용을 Excel로 저장하는 프로시저입니다.

 

그러나 아래 프로시저를 실행하면 아래와 같은 오류메시지가 떨어집니다.

 

이것이 왜 발생을 하는지 모르겠네요.

 

개발 환경은

OS : Windows 7 64bit

DB : MSSQL 2012

MS Office : 2013 64bit

 

답변 부탁 드립니다.

 

======================================

=======================오류메세지

메시지 15281, 수준 16, 상태 1, 프로시저 sp_OACreate, 줄 1
구성 요소 'Ole Automation Procedures'이(가) SQL Server 보안 구성의 일부로 해제되었으므로 이 구성 요소의 프로시저 'sys.sp_OACreate'에 대한 액세스가 차단되었습니다. 시스템 관리자는 sp_configure를 통해 'Ole Automation Procedures'을(를) 활성화할 수 있습니다. 'Ole Automation Procedures' 활성화에 대한 자세한 내용을 보려면 SQL Server 온라인 설명서에서 'Ole Automation Procedures'을(를) 검색하십시오.
메시지 15281, 수준 16, 상태 1, 프로시저 sp_OASetProperty, 줄 1
구성 요소 'Ole Automation Procedures'이(가) SQL Server 보안 구성의 일부로 해제되었으므로 이 구성 요소의 프로시저 'sys.sp_OASetProperty'에 대한 액세스가 차단되었습니다. 시스템 관리자는 sp_configure를 통해 'Ole Automation Procedures'을(를) 활성화할 수 있습니다. 'Ole Automation Procedures' 활성화에 대한 자세한 내용을 보려면 SQL Server 온라인 설명서에서 'Ole Automation Procedures'을(를) 검색하십시오.
메시지 15281, 수준 16, 상태 1, 프로시저 sp_OAMethod, 줄 1
구성 요소 'Ole Automation Procedures'이(가) SQL Server 보안 구성의 일부로 해제되었으므로 이 구성 요소의 프로시저 'sys.sp_OAMethod'에 대한 액세스가 차단되었습니다. 시스템 관리자는 sp_configure를 통해 'Ole Automation Procedures'을(를) 활성화할 수 있습니다. 'Ole Automation Procedures' 활성화에 대한 자세한 내용을 보려면 SQL Server 온라인 설명서에서 'Ole Automation Procedures'을(를) 검색하십시오.
메시지 15281, 수준 16, 상태 1, 프로시저 sp_OAMethod, 줄 1
구성 요소 'Ole Automation Procedures'이(가) SQL Server 보안 구성의 일부로 해제되었으므로 이 구성 요소의 프로시저 'sys.sp_OAMethod'에 대한 액세스가 차단되었습니다. 시스템 관리자는 sp_configure를 통해 'Ole Automation Procedures'을(를) 활성화할 수 있습니다. 'Ole Automation Procedures' 활성화에 대한 자세한 내용을 보려면 SQL Server 온라인 설명서에서 'Ole Automation Procedures'을(를) 검색하십시오.
메시지 15281, 수준 16, 상태 1, 프로시저 sp_OADestroy, 줄 1
구성 요소 'Ole Automation Procedures'이(가) SQL Server 보안 구성의 일부로 해제되었으므로 이 구성 요소의 프로시저 'sys.sp_OADestroy'에 대한 액세스가 차단되었습니다. 시스템 관리자는 sp_configure를 통해 'Ole Automation Procedures'을(를) 활성화할 수 있습니다. 'Ole Automation Procedures' 활성화에 대한 자세한 내용을 보려면 SQL Server 온라인 설명서에서 'Ole Automation Procedures'을(를) 검색하십시오.
메시지 15028, 수준 16, 상태 1, 프로시저 sp_addlinkedserver, 줄 82
서버 'INSA_TO_EXCEL'이(가) 이미 있습니다.
메시지 7302, 수준 16, 상태 1, 줄 1
연결된 서버 "INSA_TO_EXCEL"에 대한 OLE DB 공급자 "Microsoft.Jet.OLEDB.4.0"의 인스턴스를 만들 수 없습니다.

 

===========================================================================================

=======================프로시저

USE [RBMS]
GO
/****** Object:  StoredProcedure [dbo].[SP_EXCEL]    Script Date: 2014-04-30 오후 4:04:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:  <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SP_EXCEL]
AS
BEGIN
 SET NOCOUNT ON
 
--기본셋팅 : 이부분은 대도록이면 수정 하지 맙시다...ㅎㅎㅎ
 DECLARE @Conn int    -- ADO Connection object to create XLS
              , @hr int     -- OLE return value
              , @src varchar(255)   -- OLE Error Source
              , @desc varchar(255)   -- OLE Error Description
              , @Path varchar(255)   -- Drive or UNC path for XLS
              , @Connect varchar(255)   -- OLE DB Connection string for Jet 4 Excel ISAM
              , @WKS_Created bit   -- Whether the XLS Worksheet exists
              , @TABLE varchar(128)   -- Name of the XLS Worksheet (table)
              , @ServerName nvarchar(128)  -- Linked Server name for XLS
              , @DDL varchar(8000)   -- Jet4 DDL for the XLS WKS table creation
              , @SQL varchar(8000)   -- INSERT INTO XLS T-SQL
              , @COL1 varchar(1000)  -- Row1
              , @COL2 varchar(1000)  -- Row2
 

--기본설정
 --------------------------------------------------------------------------
 --패치
 
DECLARE C_INSA CURSOR
FOR
 
   -- 쿼서를 생성 합니다.
    SELECT ID, DEPT_CD
       FROM TB_USER_INFO

 OPEN C_INSA                                                          -- 쿼서 오픈
 
 DECLARE @ID AS VARCHAR(10)
 DECLARE @DEPT_CD AS VARCHAR(10)
 
 
 
--첫 로우 FETCH
 FETCH NEXT FROM C_INSA INTO @ID, @DEPT_CD
 
 WHILE @@FETCH_STATUS = 0
 BEGIN
 
 
   -- 엑셀 파일이 저장될 디렉토리
 
   -- 3개의 엑셀 파일이 생성됨( A, B, C)
    SET @Path = 'D:\TEMP\INSA_20140430.xls'
 
   -- 엑셀 파일을 상요하기 위한 선언
    SET @Connect = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+@Path+';Extended Properties=Excel 8.0'
 
 
    --테이블명 & db명
    SET @TABLE = 'TEAM_CODE'                        -- 테이블 = 시트명 이라고 생각 하시면 됩니다.
    SET @ServerName = 'INSA_TO_EXCEL'           
 
    --컬럼
    SET @COL1 = 'ID, DEPT_CD'
 
   -- 저장할 컬럼 형을 선언합니다...주로 (Text로 걍 선언하지요...ㅎㅎㅎ)
    SET @COL2 = 'ID Text, DEPT_CD Text'
 
    -- 엑셀로 인서트 쿼리
 
   -- 생성된 DB의 TABLE에 데이터를 저장한다.
    SET @SQL = 'INSERT INTO '+@ServerName+'...'+@TABLE+' ('+@COL1+') '
    SET @SQL = @SQL+'SELECT '+@COL1+' FROM  TB_USER_INFO'
 
   -- 테이블 생성
    SET @DDL = 'CREATE TABLE '+@TABLE+' ('+@COL2+')'
 
    --커넥션
 
   -- sp_OACreate : Microsoft?? SQL Server™의 인스턴스에서 OLE개체의 인스턴스를 만듭니다.
 
   -- sp_OAGetErrorInfo : OLE 자동화 오류 정보를 얻습니다.
 
   -- sp_OAMethod : OLE 개체의 메서드를 호출합니다.
 
   -- MS-SQL 오라인 설명서를 참조하시면 자세한 정보가 있습니다.
    EXEC @hr = sp_OACreate 'ADODB.Connection', @Conn OUT
    EXEC @hr = sp_OASetProperty @Conn, 'ConnectionString', @Connect
    EXEC @hr = sp_OAMethod @Conn, 'Open'
    EXEC @hr = sp_OAMethod @Conn, 'Execute', NULL, @DDL, NULL, 129
 
 
   -- 엑셀 표 형태로 변환
    IF @hr = 0x80040E14
      OR @hr = 0x80042732
    BEGIN
       IF @hr = 0x80040E14
       BEGIN
 
         -- 오류가 발생하면 실행 된다.
          PRINT char(9)+''''+@TABLE+''' Worksheet exists for append'
          SET @WKS_Created = 0
       END
  
      SET @hr = 0 -- ignore these errors
    END
 
 
   -- sp_OADestroy : 만들어진 OLE 개체를 삭제합니다.
 
   EXEC @hr = sp_OADestroy @Conn
 
    --엑셀로 inst
 
   -- sp_addlinkedserver : OLE DB 데이터 원본과 유형이 다른 분산 쿼리를 액세스할 수 있도록 해 주는 연결된 서버를

   --                               작성합니다. sp_addlinkedserver와 연결된 서버를 작성한 다음에는 이 서버가 분산 쿼리를

   --                               실행할 수 있습니다. 연결된 서버가 Microsoft?? SQL Server™로 정의된 경우에는 원격 저장

   --                               프로시저를 실행할 수 있습니다.
    EXEC sp_addlinkedserver @server = @ServerName
                                       , @srvproduct = 'Microsoft Excel Workbook'
                                       , @provider = 'Microsoft.Jet.OLEDB.12.0'
                                       , @datasrc = @Path
                                       , @provstr = 'Excel 8.0'

   -- sp_addlinkedsrvlogin : Microsoft?? SQL Server™ 로컬 인스턴스의 로그인과 연결된 서버의 원격 로그인 간의

   --                                  매핑을 작성하거나 업데이트합니다.
    EXEC sp_addlinkedsrvlogin @ServerName, 'false'
 
    EXEC (@SQL)
 
 
 
   -- sp_dropserver : 로컬 Microsoft?? SQL Server™의 연결된 서버 및 원격 서버에 알려진 목록에서 서버를 제거합니다.
    EXEC sp_dropserver @ServerName, 'droplogins'
 
 
 
--다음 로우 FEETCH - 루프
 FETCH NEXT FROM C_INSA INTO @ID, @DEPT_CD
 END
 
 
 
--커서 CLOSE
 CLOSE C_INSA
 
 
 
--커서 DEALLOCATE
 DEALLOCATE C_INSA
 
SET NOCOUNT OFF
END

 

No. Subject Author Date Views
7832 쿼리 질문 드립니다.. [1] 꼽냐™ 2014.05.09 2297
7831 OPENROWSET 에러 [1] 팔개 2014.05.09 6497
7830 중복 데이터 삭제하는 방법을 부탁드립니다. [4] 냠냠10 2014.05.08 4261
7829 조인 조건에서 CASE 사용 시 질문입니다. [5] sams 2014.05.08 6026
7828 쿼리 질문드립니다. [2] 꼽냐™ 2014.05.08 2061
7827 쿼리 내역 조회 관련 [2] 형님 2014.05.07 3177
7826 쿼리가 이상해서... (난이도-상) [2] 디비디비 2014.05.07 2710
7825 쿼리 어려워 질문을 드립니다 [6] 밥먹는푸우 2014.05.07 2343
7824 데이터가 삭제가 안되네요 -_-;; [3] 김준형_283549 2014.05.07 2084
7823 윈도우8에서 SQL Server Management Studio 사용 [2] sams 2014.05.07 5554
7822 Client 프로그램 실행 시 로그인 다이얼로그가 계속 뜹니다. [1] izzy 2014.05.07 2297
7821 sql2005에서 백업 후 2008복원했는데요 table명이 변경됩니다. 이리야 2014.05.02 2749
7820 sp_who2 실행 시 질문 입니다. [2] 루돌프 2014.04.30 4316
» MSSQL Select 쿼리를 엑셀로 저장하기 [1] 지현덕 2014.04.30 10596
7818 기간에 따른 요율 적용 [1] taz2315 2014.04.30 2401
7817 이럴때 조인을 어떻게 하나요? [3] 김준형_283549 2014.04.29 2510
7816 논리적 파일이름이 이미 사용되고 있습니다. [7] 깨비꼬비 2014.04.29 5274
7815 DB에 테이블이 있는지를 확인 [5] 디비디비 2014.04.29 5011
7814 Index Scan 과 Key LookUP, RID LookUP 의 차이점은 무엇인가요? [13] 꿈벵이 2014.04.25 12715
7813 사용자 변경 재문의 [4] 뽀지티브 2014.04.25 2368





XE Login