inblog logo
|
{CODE-RYU};
    DBMS

    [DBMS] SQL SERVER 엑셀 업로드

    류재성's avatar
    류재성
    Oct 26, 2024
    [DBMS] SQL SERVER 엑셀 업로드
    Contents
    1. 테이블 생성2. 데이터 가져오기3. 'Microsoft.ACE.OLEDB.12.0' 공급자는 로컬 컴퓨터에 등록할 수 없습니다. (System.Data)
     
     
    💡
    SQL Server Management Studio 를 활용해 다량의 엑셀 데이터를 테이블에 insert 해보자.
     

    1. 테이블 생성

     
    CREATE TABLE EXCEL_UPLOAD ( emp_no varchar(10), emp_name varchar(100), hire_date date, dept_code varchar(10), position varchar(30), salary int )
     
    테스트를 위해 테이블을 생성한다.
     
     
    emp_no
    emp_name
    hire_date
    dept_code
    position
    salary
    E001
    Alice
    2023-01-10
    D01
    Manager
    80000
    E002
    Bob
    2022-11-05
    D02
    Analyst
    60000
    E003
    Charlie
    2021-05-15
    D01
    Developer
    75000
    E004
    David
    2020-12-22
    D03
    Clerk
    50000
    E005
    Eva
    2023-06-30
    D02
    Manager
    85000
     
    그리고 테이블에 넣을 테이블을 엑셀로 만든다.
     
     

    2. 데이터 가져오기

     
    notion image
     
    현재 master 데이터베이스에 테이블이 생성되어있다.
     
    notion image
     
    데이터베이스에서 마우스 우클릭 - 태스크 - 데이터 가져오기를 선택한다.
     
    notion image
     
    가져오기 마법사에서 다음을 선택한다.
     
    notion image
     
    데이터 원본에 엑셀을 선택 후 엑셀 파일의 경로를 넣는다.
    아래 사진과 같이 엑셀의 첫 행을 컬럼 명을 사용했기 때문에 ‘첫 행은 열 이름으로’를 체크한다.
     
    notion image
     
     
     
    notion image
     
    그 다음으로 복사할 대상을 선택한다. SQL SERVER 를 선택 후 인증방법과 데이터베이스를 선택한다.
     
     
    notion image
     
    하나 이상의 테이블 또는 뷰에서 데이터 복사 선택한다.
     
    notion image
     
    대상 테이블명은 생성한 테이블명에 맞게 수정한다. 만약 이름이 다르다면 새로운 테이블이 생성되게 된다.
     
    notion image
    notion image
     
    매핑 정보를 들어갔을 때 대상에 테이블명이 있다면 행을 추가하도록 설정되며, 테이블명이 일치하는게 없다면 새로운 테이블이 생성되게 된다.
     
    notion image
     
    다음을 선택한다.
     
     
    notion image
     
    즉시 실행을 선택한다.
     
     
    notion image
     
    실행이 완료되었다.
     
    SELECT * FROM EXCEL_UPLOAD
     
    notion image
     
    쿼리를 실행했을 때 엑셀의 데이터가 정상적으로 테이블에 입력된 것을 확인할 수 있다.
     

    3. 'Microsoft.ACE.OLEDB.12.0' 공급자는 로컬 컴퓨터에 등록할 수 없습니다. (System.Data)

     
    notion image
     
    💡
    데이터 원본 복사를 할 때 해당 오류가 발생할 수 있다. 이 오류는 64비트 Office 프로그램을 사용하고 있어 64비트 용 OLE DB 제공자가 설치되어있으나, 32비트 프로그램인 Visual Studio 에서는 해당 제공자를 찾을 수 없음을 의미한다.
     
    Download Microsoft Access Database Engine 2016 재배포 가능 패키지 from Official Microsoft Download Center
    이 다운로드를 실행하면 Microsoft Office System 파일과 Microsoft Office가 아닌 다른 응용 프로그램 사이에서 데이터를 쉽게 전송할 수 있는 구성 요소 집합이 설치됩니다.
    Download Microsoft Access Database Engine 2016 재배포 가능 패키지  from Official Microsoft Download Center
    https://www.microsoft.com/ko-kr/download/details.aspx?id=54920
     
    따라서 위의 링크에서 32비트 엔진을 설치해야 한다.
     
    notion image
     
    cmd - cd downloads (accessdatabaseengine.exe) 가 설치되어있는 경로 - accessdatabaseengine.exe /passive 를 입력한다.
     
    notion image
     
    32버전이 설치가 되지 않는다.
     
    Access 데이터베이스 엔진 OLE DB에 대한 연결을 설정할 수 없음 - Power Automate
    데스크톱용 Power Automate 데이터베이스 엔진 OLE DB 액세스에 대한 데이터베이스 작업과의 연결을 설정할 수 없는 문제에 대한 해결 방법을 제공합니다.
    Access 데이터베이스 엔진 OLE DB에 대한 연결을 설정할 수 없음 - Power Automate
    https://learn.microsoft.com/ko-kr/troubleshoot/power-platform/power-automate/desktop-flows/cannot-connect-access-database-engine-ole-db
    Access 데이터베이스 엔진 OLE DB에 대한 연결을 설정할 수 없음 - Power Automate
     
    이런 경우는 이미 64비트가 설치되어있기 때문에 설치가 되지 않는 것이다. 해결법은 공식 문서처럼 모든 엔진을 삭제 후 재설치 해야 한다.
     
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Common\FilesPaths
     
    레지스트리 편집기에서 위의 경로로 이동한다.
     
    notion image
     
    경로에서 mso.dll 가 있다면 엔진을 삭제해주어야 한다.
     
    제어판에서 office 를 삭제후 32비트를 설치 완료하면 된다.
     
    notion image
     
    그리고 다시 데이터 가져오기를 하면 다음으로 넘어가는 것을 확인할 수 있다.
    Share article

    {CODE-RYU};

    RSS·Powered by Inblog