OLE DB 명령 변환OLE DB Command Transformation

OLE DB 명령 변환은 데이터 흐름의 각 행에 대해 SQL 문을 실행합니다.The OLE DB Command transformation runs an SQL statement for each row in a data flow. 예를 들어 데이터베이스 테이블에서 행을 삽입, 업데이트 또는 삭제하는 SQL 문을 실행할 수 있습니다.For example, you can run an SQL statement that inserts, updates, or deletes rows in a database table.

다음과 같은 방법으로 OLE DB 명령 변환을 구성할 수 있습니다.You can configure the OLE DB Command Transformation in the following ways:

  • 각 행에 대해 변환을 실행하는 SQL 문을 제공합니다.Provide the SQL statement that the transformation runs for each row.

  • SQL 문이 시간 초과될 때까지 걸리는 시간(초)을 지정합니다.Specify the number of seconds before the SQL statement times out.

  • 기본 코드 페이지를 지정합니다.Specify the default code page.

    일반적으로 SQL 문에는 매개 변수가 포함됩니다.Typically, the SQL statement includes parameters. 매개 변수 값이 변환 입력의 외부 열에 저장되고 외부 열에 대한 입력 열 매핑으로 입력 열이 매개 변수에 매핑됩니다.The parameter values are stored in external columns in the transformation input, and mapping an input column to an external column maps an input column to a parameter. 예를 들어 ProductKey 열의 값에 따라 DimProduct 테이블에서 행을 찾고 삭제하려면 Param_0 이라는 외부 열을 ProductKey 라는 입력 열에 매핑한 후 DELETE FROM DimProduct WHERE ProductKey = ?SQL 문을 실행합니다.For example, to locate rows in the DimProduct table by the value in their ProductKey column and then delete them, you can map the external column named Param_0 to the input column named ProductKey, and then run the SQL statement DELETE FROM DimProduct WHERE ProductKey = ?.. OLE DB 명령 변환에는 매개 변수 이름이 제공되며 이 이름은 수정될 수 없습니다.The OLE DB Command transformation provides the parameter names and you cannot modify them. 매개 변수 이름은 Param_0, Param_1등입니다.The parameter names are Param_0, Param_1, and so on.

    고급 편집기 대화 상자를 사용하여 OLE DB 명령 변환을 구성하는 경우 SQL 문의 매개 변수는 변환 입력의 외부 열에 자동으로 매핑될 수 있으며, 각 매개 변수의 특성은 새로 고침 단추를 클릭하여 정의될 수 있습니다.If you configure the OLE DB Command transformation by using the Advanced Editor dialog box, the parameters in the SQL statement may be mapped automatically to external columns in the transformation input, and the characteristics of each parameter defined, by clicking the Refresh button. 하지만 OLE DB 명령 변환에서 사용되는 OLE DB Provider가 매개 변수로부터의 매개 변수 정보 파생을 지원하지 않으면 외부 열을 수동으로 구성해야 합니다.However, if the OLE DB provider that the OLE DB Command transformation uses does not support deriving parameter information from the parameter, you must configure the external columns manually. 즉, 외부 입력의 각 매개 변수에 대한 열을 변환에 추가하고, Param_0과 같은 이름을 사용하도록 열 이름을 업데이트하고, DBParamInfoFlags 속성의 값을 지정하고, 매개 변수 값이 포함된 입력 열을 외부 열로 매핑해야 합니다.This means that you must add a column for each parameter to the external input to the transformation, update the column names to use names like Param_0, specify the value of the DBParamInfoFlags property, and map the input columns that contain parameter values to the external columns.

    DBParamInfoFlags의 값은 매개 변수의 특성을 나타냅니다.The value of DBParamInfoFlags represents the characteristics of the parameter. 예를 들어 값 1 은 매개 변수가 입력 매개 변수임을 지정하며, 값 65 는 매개 변수가 입력 매개 변수이고 Null 값이 포함될 수 있음을 지정합니다.For example, the value 1 specifies that the parameter is an input parameter, and the value 65 specifies that the parameter is an input parameter and may contain a null value. 값은 OLE DB DBPARAMFLAGSENUM 열거의 값과 일치해야 합니다.The values must match the values in the OLE DB DBPARAMFLAGSENUM enumeration. 자세한 내용은 OLE DB 참조 설명서를 참조하십시오.For more information, see the OLE DB reference documentation.

    OLE DB 명령 변환은 SQLCommand 사용자 지정 속성을 포함합니다.The OLE DB Command transformation includes the SQLCommand custom property. 이 속성은 패키지가 로드되면 속성 식을 사용하여 업데이트할 수 있습니다.This property can be updated by a property expression when the package is loaded. 자세한 내용은 Integration Services(SSIS) 식, 패키지에서 속성 식 사용변환 사용자 지정 속성을 참조하세요.For more information, see Integration Services (SSIS) Expressions, Use Property Expressions in Packages, and Transformation Custom Properties.

    이 변환에는 하나의 입력, 하나의 일반 출력 및 하나의 오류 출력이 있습니다.This transformation has one input, one regular output, and one error output.

로깅Logging

OLE DB 명령 변환이 외부 데이터 공급자에 대해 수행하는 호출을 로깅할 수 있습니다.You can log the calls that the OLE DB Command transformation makes to external data providers. 이 로깅 기능을 사용하여 OLE DB 명령 변환이 수행하는 외부 데이터 원본에 대한 연결 및 명령 문제를 해결할 수 있습니다.You can use this logging capability to troubleshoot the connections and commands to external data sources that the OLE DB Command transformation performs. OLE DB 명령 변환이 외부 데이터 공급자에 대해 수행하는 호출을 로깅하려면 패키지 로깅을 설정하고 패키지 수준에서 Diagnostic 이벤트를 선택합니다.To log the calls that the OLE DB Command transformation makes to external data providers, enable package logging and select the Diagnostic event at the package level. 자세한 내용은 패키지 실행 문제 해결 도구를 참조하세요.For more information, see Troubleshooting Tools for Package Execution.

SSISSSIS 디자이너 또는 개체 모델을 사용하여 변환을 구성할 수 있습니다.You can configure the transformation by either using the SSISSSIS Designer or the object model. 프로그래밍 방식으로 이 변환을 구성하는 방법은 개발자 가이드를 참조하십시오.See the Developer Guide for details about programmatically configuring this transformation.

OLE DB 명령 변환 구성Configure the OLE DB Command Transformation

OLE DB 명령 변환을 추가 및 구성하려면 패키지에 적어도 하나 이상의 데이터 흐름 태스크와 플랫 파일 원본이나 OLE DB 원본과 같은 원본이 이미 들어 있어야 합니다.To add and configure an OLE DB Command transformation, the package must already include at least one Data Flow task and a source such as a Flat File source or an OLE DB source. 이러한 변환은 일반적으로 매개 변수가 있는 쿼리에 사용됩니다.This transformation is typically used for running parameterized queries.

OLE DB 명령 변환을 구성하려면To configure the OLE DB Command transformation

  1. SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)에서 원하는 패키지가 들어 있는 Integration ServicesIntegration Services 프로젝트를 엽니다.In SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), open the Integration ServicesIntegration Services project that contains the package you want.

  2. 솔루션 탐색기에서 패키지를 두 번 클릭하여 엽니다.In Solution Explorer, double-click the package to open it.

  3. 데이터 흐름 탭을 클릭한 다음 도구 상자에서 OLE DB 명령 변환을 디자인 화면으로 끌어 옵니다.Click the Data Flow tab, and then, from the Toolbox, drag the OLE DB Command transformation to the design surface.

  4. 데이터 원본이나 이전 변환에서 연결선(녹색 또는 빨간색 화살표)을 OLE DB 명령 변환으로 끌어서 OLE DB 명령 변환을 데이터 흐름에 연결합니다.Connect the OLE DB Command transformation to the data flow by dragging a connector—the green or red arrow—from a data source or a previous transformation to the OLE DB Command transformation.

  5. 구성 요소를 마우스 오른쪽 단추로 클릭하고 편집 또는 고급 편집기 표시를 클릭합니다.Right-click the component and select Edit or Show Advanced Editor.

  6. 연결 관리자 탭의 연결 관리자 목록에서 OLE DB 연결 관리자를 선택합니다.On the Connection Managers tab, select an OLE DB connection manager in the Connection Manager list. 자세한 내용은 OLE DB Connection Manager를 참조하세요.For more information, see OLE DB Connection Manager.

  7. 구성 요소 속성 탭을 클릭하고 SqlCommand 상자의 줄임표 단추 (…) 를 클릭합니다.Click the Component Properties tab and click the ellipsis button (…) in the SqlCommand box.

  8. 문자열 값 편집기에서 각 매개 변수에 대한 매개 변수 표시자로 물음표(?)를 사용하여 매개 변수가 있는 SQL 문을 입력합니다.In the String Value Editor, type the parameterized SQL statement using a question mark (?) as the parameter marker for each parameter.

  9. 새로 고침을 클릭합니다.Click Refresh. 새로 고침을 클릭하면 변환이 외부 열 컬렉션의 각 매개 변수에 대한 열을 만들고 DBParamInfoFlags 속성을 설정합니다.When you click Refresh, the transformation creates a column for each parameter in the External Columns collection and sets the DBParamInfoFlags property.

  10. 입/출력 속성 탭을 클릭합니다.Click the Input and Output Properties tab.

  11. OLE DB 명령 입력을 확장한 후 외부 열을 확장합니다.Expand OLE DB Command Input, and then expand External Columns.

  12. 외부 열 목록에 SQL 문의 각 매개 변수에 대한 열이 나열되는지 확인합니다.Verify that External Columns lists a column for each parameter in the SQL statement. 열 이름은 Param_0, Param_1등입니다.The column names are Param_0, Param_1, and so on.

    열 이름은 변경하면 안 됩니다.You should not change the column names. 열 이름을 변경하면 Integration ServicesIntegration Services 에서 OLE DB 명령 변환에 대한 유효성 검사 오류가 발생합니다.If you change the column names, Integration ServicesIntegration Services generates a validation error for the OLE DB Command transformation.

    데이터 형식도 변경하면 안 됩니다.Also, you should not change the data type. 각 열의 DataType 속성은 올바른 데이터 형식으로 설정됩니다.The DataType property of each column is set to the correct data type.

  13. 외부 열 에 열이 나열되지 않으면 열을 수동으로 추가해야 합니다.If External Columns lists no columns you must add them manually.

    • SQL 문의 각 매개 변수에 대해 열 추가 를 한 번 클릭합니다.Click Add Column one time for each parameter in the SQL statement.

    • 열 이름을 Param_0, Param_1등으로 업데이트합니다.Update the column names to Param_0, Param_1, and so on.

    • DBParamInfoFlags 속성에 값을 지정합니다.Specify a value in the DBParamInfoFlags property. 값은 OLE DB DBPARAMFLAGSENUM 열거의 값과 일치해야 합니다.The value must match a value in the OLE DB DBPARAMFLAGSENUM enumeration. 자세한 내용은 OLE DB 참조 설명서를 참조하십시오.For more information, see the OLE DB reference documentation.

    • 열의 데이터 형식을 지정하고 데이터 형식에 따라 열의 코드 페이지, 길이, 전체 자릿수 및 소수 자릿수를 지정합니다.Specify the data type of the column and, depending on the data type, specify the code page, length, precision, and scale of the column.

    • 사용되지 않는 매개 변수를 삭제하려면 외부 열에서 매개 변수를 선택한 후 열 제거를 클릭합니다.To delete an unused parameter, select the parameter in External Columns, and then click Remove Column.

    • 열 매핑 을 클릭하고 사용 가능한 입력 열 목록에 있는 열을 사용 가능한 대상 열 목록에 있는 매개 변수로 매핑합니다.Click Column Mappings and map columns in the Available Input Columns list to parameters in the Available Destination Columns list.

  14. 확인을 클릭합니다.Click OK.

  15. 업데이트된 패키지를 저장하려면 파일 메뉴에서 저장 을 클릭합니다.To save the updated package, click Save on the File menu.

관련 항목:See Also

데이터 흐름 Data Flow
Integration Services 변환Integration Services Transformations