2010-12-27 2 views
0

OLEDB 원본에 저장 프로 시저를 실행하고 출력을 파일에 기록하는 SSIS pkg가 있습니다. 저장 프로 시저에는 특정 요일 인 경우 아무 것도 수행하지 않는다는 조건이 있습니다. 데이터를 생성 할 때 여러 임시 테이블을 단계별로 실행하여 최종 데이터를 생성합니다 (전체 테이블에서 오는). 저장된 proc은 시작시 SET FMTONLY OFF가 활성화되어 메타 데이터를 SSIS로 보낼 수 있습니다. (관련이있는 두 서버는 Windows 2008 서버 상자의 SQL Server 2008입니다.)SSIS 손실 된 저장 프로 시저 메타 데이터

어제 밤 (데이터를 생성해서는 안되는 일요일은 일요일/월요일이고 이것은 실행 예정일 인 일요일 밤이었습니다. 큰 작업이므로 부모가 실행될 때마다 실행됩니다)), pkg는 저장된 proc의 메타 데이터를 찾을 수 없다는 불평을 시작했습니다. SQL Mgmt Studio에서 서버에서 직접 proc을 실행하면 행이 반환되지만 열 머리글은 반환되지 않습니다. 그러나 개발 환경에서 정확히 동일한 코드와 데이터는이를 수행하지 않습니다. (올바른) 데이터를 반환하지만 열 머리글 (올바른)을 표시하므로 패키지의 개발자 버전이 메타 데이터에 대해 불평하지 않습니다.

결코 실행되지 않은 코드 안에 proc의 맨 위에 'dummy'메타 데이터를 추가하는 트릭을 시도했습니다. (1 = 0이면 select1 cast (null로 varchar (10) ,하지만 그 diddly하지 않았다.

생산에 메타 데이터를 보관하지 않지만 개발 중에 메타 데이터를 보관하지 않는 개발과 설정의 차이가 있어야한다고 생각합니다. 누구나 어디서부터 시작해야할지 아무 생각이 없나요?

답변

0

SSIS 문제 또는 메타 데이터 문제라고 생각하지 않습니다. Management Studio에서 실행할 때 proc은 개발시 빈 데이터 집합 (열 머리글 만)을 반환하고 은 전혀 생산하지 않는을 반환합니다. 이 문제는 프로 시저가 빈 데이터 집합이 아닌 반환하는 것이 가능하다는 점에서 SSIS가 메타 데이터에 대해 불평하는 이유입니다.

프로덕션 및 개발에서 프로 시저와 데이터가 정확히 동일한 지 확인하십시오. 모든 코드 경로가 무언가를 반환합니까 (즉, 무언가가 생산물을 전혀 반환하지 않는 코드 경로에 부딪 힐 수 있음)?

+0

당신은 올바른 방향으로 나를 지적했습니다. 저장된 proc는 일요일과 월요일에 계속되지 않도록 설정되었으므로 일요일 패키지에 의해 시작되었지만 proc에서 메타 테이블을 생성하는 데 충분하지 않았습니다. 메타 데이터는 전적으로 임시 테이블에 의해 생성되었습니다. 따라서 메타 데이터를 '잃어 버렸습니다'. 나는 패키지 자체에 계속 체크를하고, 한 번 실행 시키면, 다시 행복해진다. – Valkyrie