2
여기 내 문제가 있습니다. SegmentID라는 입력에 1 개의 매개 변수를 사용하는 SSIS 패키지가 있습니다. 하지만 난 그것을 C# 코드에서 전달할 수 없습니다. 지금까지 2 일 동안 검색 중이며 작동해야하는 해결책이 있지만 SSIS 패키지가 매개 변수를 가져 오는 단계에서 실패합니다. 도대체 내가 잘못하고있어?SSIS 패키지에 사용자 매개 변수 전달
using (SqlConnection con = GetConnection())
{
var integrationServices = new IntegrationServices(con);
if (integrationServices.Catalogs.Contains("SSISDB"))
{
var catalog = integrationServices.Catalogs["SSISDB"];
if (catalog.Folders.Contains("PSO"))
{
var folder = catalog.Folders["PSO"];
if (folder.Projects.Contains("PSO_SSIS"))
{
var project = folder.Projects["PSO_SSIS"];
project.Parameters["SegmentID"].Set(ParameterInfo.ParameterValueType.Literal, segmentID);
if (project.Packages.Contains("Main.dtsx"))
{
var package = project.Packages["Main.dtsx"];
long executionIdentifier = package.Execute(false, null);
return catalog.Executions[executionIdentifier];
}
}
}
}
}
2012 프로젝트 모델에서 매개 변수로 작업하는 몇 가지 방법이 있습니다. 프로젝트의 매개 변수를 segmentId 또는 실행의 segmentID의 특정 인스턴스로 구성하려고합니까? – billinkc
잘 모르겠습니다 (SSIS로 게임을하는 동안 오랜 시간이 걸렸습니다), 저는 패키지가 아니라 프로젝트에 매개 변수를 제공한다고 생각합니다. 그래서,'project.Parameters'는 ...'package.Parameters'이어야합니다, 안돼요? – kerrubin
글쎄, 실제로 패키지는 다른 사람이 작성한 것입니다. 나는 그 패키지를 시작하기로되어 있습니다. 나는이 매개 변수를 A LOT 패키지로 전달하려했지만 실패했습니다. 디버그 모드에서 필자는이 매개 변수가 패키지가 아니라 실제로 Project에 보내지고 있음을 확인했습니다 (어떤 이유로). 패키지 자체는 다음과 같은 작업으로 시작합니다. select * from 여기서 SegmentID =? –
KorsaR