다음을 통해 공유


OLE DB 원본

OLE DB 원본은 데이터베이스 테이블, 뷰 또는 SQL 명령을 사용하여 다양한 OLE DB 규격 관계형 데이터베이스에서 데이터를 추출합니다. 예를 들어 OLE DB 원본은 Microsoft Office Access 또는 SQL Server 데이터베이스의 테이블에서 데이터를 추출할 수 있습니다.

OLE DB 원본은 데이터를 추출하기 위한 4가지 데이터 액세스 모드를 제공합니다.

  • 테이블 또는 뷰

  • 변수에 지정된 테이블 또는 뷰입니다.

  • SQL 문의 결과입니다. 쿼리는 매개 변수가 있는 쿼리일 수 있습니다.

  • 변수에 저장된 SQL 문의 결과입니다.

비고

SQL 문을 사용하여 임시 테이블의 결과를 반환하는 저장 프로시저를 호출하는 경우 WITH RESULT SETS 옵션을 사용하여 결과 집합에 대한 메타데이터를 정의합니다.

매개 변수가 있는 쿼리를 사용하는 경우 변수를 매개 변수에 매핑하여 SQL 문의 개별 매개 변수 값을 지정할 수 있습니다.

이 원본은 OLE DB 연결 관리자를 사용하여 데이터 원본에 연결하고 연결 관리자는 사용할 OLE DB 공급자를 지정합니다. 자세한 내용은 OLE DB 연결 관리자를 참조하세요.

또한 Integration Services 프로젝트는 OLE DB 연결 관리자를 만들 수 있는 데이터 원본 개체를 제공하여 OLE DB 원본에서 데이터 원본 및 데이터 원본 뷰를 사용할 수 있도록 합니다.

OLE DB 공급자에 따라 OLE DB 원본에 몇 가지 제한 사항이 적용됩니다.

  • Oracle용 Microsoft OLE DB 공급자는 Oracle 데이터 형식 BLOB, CLOB, NCLOB, BFILE 또는 UROWID를 지원하지 않으며, OLE DB 원본은 이러한 데이터 형식의 열이 포함된 테이블에서 데이터를 추출할 수 없습니다.

  • IBM OLE DB DB2 공급자 및 Microsoft OLE DB DB2 공급자는 저장 프로시저를 호출하는 SQL 명령을 사용할 수 없습니다. 이러한 종류의 명령을 사용하는 경우 OLE DB 원본은 열 메타데이터를 만들 수 없으며, 따라서 데이터 흐름의 OLE DB 원본을 따르는 데이터 흐름 구성 요소에는 사용할 수 있는 열 데이터가 없으며 데이터 흐름의 실행이 실패합니다.

OLE DB 원본에는 하나의 일반 출력과 하나의 오류 출력이 있습니다.

매개 변수가 있는 SQL 문 사용

OLE DB 원본은 SQL 문을 사용하여 데이터를 추출할 수 있습니다. 문장은 SELECT 또는 EXEC 문일 수 있습니다.

OLE DB 원본은 OLE DB 연결 관리자를 사용하여 데이터를 추출하는 데이터 원본에 연결합니다. OLE DB 연결 관리자가 사용하는 공급자와 연결 관리자가 연결하는 RDBMS(관계형 데이터베이스 관리 시스템)에 따라 매개 변수 이름 지정 및 목록에 다른 규칙이 적용됩니다. 매개 변수 이름이 RDBMS에서 반환되는 경우 매개 변수 이름을 사용하여 매개 변수 목록의 매개 변수를 SQL 문의 매개 변수에 매핑할 수 있습니다. 그렇지 않으면 매개 변수가 매개 변수 목록의 서수 위치에 의해 SQL 문의 매개 변수에 매핑됩니다. 지원되는 매개 변수 이름의 형식은 공급자에 따라 다릅니다. 예를 들어 일부 공급자는 변수 또는 열 이름을 사용해야 하는 반면, 일부 공급자는 0 또는 Param0과 같은 기호 이름을 사용해야 합니다. SQL 문에 사용할 매개 변수 이름에 대한 자세한 내용은 공급자별 설명서를 참조하세요.

OLE DB 연결 관리자를 사용하는 경우 OLE DB 원본이 OLE DB 공급자를 통해 매개 변수 정보를 파생할 수 없으므로 매개 변수가 있는 하위 쿼리를 사용할 수 없습니다. 그러나 식을 사용하여 매개 변수 값을 쿼리 문자열에 연결하고 원본의 SqlCommand 속성을 설정할 수 있습니다. SSIS 디자이너에서는 OLE DB 원본 편집기 대화 상자를 사용하여 OLE DB 원본 을 구성하고 쿼리 매개 변수 설정 대화 상자의 변수에 매개 변수를 매핑합니다.

서수 위치를 사용하여 매개 변수 지정

매개 변수 이름이 반환되지 않으면 매개 변수가 쿼리 매개 변수 설정 대화 상자의 매개 변수 목록에 나열되는 순서는 런타임에 매핑되는 매개 변수 마커를 제어합니다. 목록에서 첫 번째 매개변수가 무엇에 해당합니까? SQL 문에서 두 번째 물음표부터 시작하여 계속되는 형태입니다.

다음 SQL 문은 AdventureWorks2012 데이터베이스의 Product 테이블에서 행을 선택합니다. 매핑 목록의 첫 번째 매개 변수는 Color 열에 대한 첫 번째 매개 변수에 매핑되며, 두 번째 매개 변수는 Size 열에 매핑됩니다.

SELECT * FROM Production.Product WHERE Color = ? AND Size = ?

매개 변수 이름은 영향을 주지 않습니다. 예를 들어 매개 변수 이름이 적용되는 열과 같지만 매개 변수 목록에 올바른 서수 위치에 배치되지 않는 경우 런타임에 발생하는 매개 변수 매핑은 매개 변수 이름이 아닌 매개 변수의 서수 위치를 사용합니다.

EXEC 명령은 일반적으로 프로시저에서 매개 변수 값을 제공하는 변수의 이름을 매개 변수 이름으로 사용해야 합니다.

이름을 사용하여 매개 변수 지정

실제 매개 변수 이름이 RDBMS에서 반환되는 경우 SELECT 및 EXEC 문에서 사용하는 매개 변수는 이름으로 매핑됩니다. 매개 변수 이름은 SELECT 문 또는 EXEC 문에서 실행하는 저장 프로시저가 예상하는 이름과 일치해야 합니다.

다음 SQL 문은 AdventureWorks2012 데이터베이스에서 사용할 수 있는 uspGetWhereUsedProductID 저장 프로시저를 실행합니다.

EXEC uspGetWhereUsedProductID ?, ?

저장 프로시저에는 변수 @StartProductID@CheckDate매개 변수 값을 제공해야 합니다. 매핑 목록에 매개 변수가 표시되는 순서는 관련이 없습니다. 유일한 요구 사항은 매개 변수 이름이 @ 기호를 포함하여 저장 프로시저의 변수 이름과 일치한다는 것입니다.

변수에 매개 변수 매핑

매개 변수는 런타임에 매개 변수 값을 제공하는 변수에 매핑됩니다. 이 변수는 일반적으로 사용자 정의 변수이지만 Integration Services에서 제공하는 시스템 변수를 사용할 수도 있습니다. 사용자 정의 변수를 사용하는 경우 매핑된 매개 변수가 참조하는 열의 데이터 형식과 호환되는 형식으로 데이터 형식을 설정해야 합니다. 자세한 내용은 Integration Services(SSIS) 변수를 참조하세요.

OLE DB 원본 문제 해결

OLE DB 원본이 외부 데이터 공급자에 대해 만드는 호출을 기록할 수 있습니다. 이 로깅 기능을 사용하여 OLE DB 원본이 수행하는 외부 데이터 원본의 데이터 로드 문제를 해결할 수 있습니다. OLE DB 원본이 외부 데이터 공급자에 대해 하는 호출을 기록하려면 패키지 로깅을 사용하도록 설정하고 패키지 수준에서 진단 이벤트를 선택합니다. 자세한 내용은 패키지 실행을 위한 문제 해결 도구를 참조하세요.

OLE DB 원본 구성

프로그래밍 방식으로 또는 SSIS 디자이너를 통해 속성을 설정할 수 있습니다.

OLE DB 원본 편집기 대화 상자에서 설정할 수 있는 속성에 대한 자세한 내용은 다음 항목 중 하나를 클릭합니다.

고급 편집기 대화 상자에는 프로그래밍 방식으로 설정할 수 있는 속성이 표시됩니다. 고급 편집기 대화 상자를 사용하거나 프로그래밍 방식으로 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하세요:

Social.technet.microsoft.com 대한 Wiki 문서, Oracle Connectors가 포함된 SSIS.

또한 참조하십시오

OLE DB 대상
Integration Services(SSIS) 변수
데이터 흐름