2011-08-01 2 views
0

SQL 데이터베이스에서 테이블의 데이터를 가져와 다른 데이터베이스 인 테이블에 삽입하거나 기존 행을 업데이트하는 SSIS 패키지가 있습니다.SSIS OLE DB 명령 변환이 모든 레코드를 테이블에 삽입하지 않는 이유는 무엇입니까?

lookup 뒤에 내 문제가 있습니다. 행을 삽입하거나 업데이트하지만 삽입에 들어가는 행의 절반 이상이 테이블에 추가되지 않습니다.

삽입의 경우, 내가 테스트 한 삽입 명령을 사용하는 Ole Db Command 개체를 사용하고 있습니다. 패키지가 오류 알림없이 실행되고 있지만 여전히 테이블의 모든 행을 삽입하지 않은 이유를 발견했습니다.

sqlProfiler에서 확인한 결과 명령이 입니다. RCP : 완료했다고 가정하는이라고 가정합니다.

SQL 프로필러이 데이터를 제공하는 SQL 관리 스튜디오에서 수동으로 삽입하면 삽입 문서를 실행하는 데 사용되는 값이 표시됩니다. 나는 데이터를 검사하고 모든 것이 잘 보입니다 (삽입되지 않은 행에는 불법 데이터가 없습니다).

이 문제를 해결하는 방법에 관해서는 완전히 분실했습니다. 누구나 아이디어가 있습니까?

+0

귀하의 질문은 매우 모호합니다. 제목은 "날짜 형식"을 언급하지만 질문은 그렇지 않습니다. 당신은 패키지가 당신이 원하는 것을하지 못하는 이유를 "발견"했다고 말했지만 그 의미가 무엇인지 설명하지 않았습니다. 수동으로 작동하는 INSERT 문의 예는 제공하지 않습니다. 특정 데이터 유형이나 불법 데이터가 없다는 것을 어떻게 알 수 있습니까? 당신은 SSIS 버전 등을 언급하지 않습니다. – Pondlife

+0

Ole 명령은 복잡한 SQL 문이 관련된 경우에 사용됩니다. SQL 명령 내에서 SQL 문을 볼 수 있습니까? –

+0

@Pondlife, 그것을 고치려고했는데 날짜가 아니라는 것을 알았지 만, 제목을 바꾸는 걸 잊었고, 제목을 바꿨다. – Hugo

답변

2

OLE DB 대상 대신 OLE DB 명령을 사용하여 레코드를 삽입해야하는 특별한 이유가 있습니까?

편집 1 :

는 OLE DB 대상으로 조회 변환 일치 출력에서 ​​보낸 그래서, 당신이보고있는 X 행 (100 말) 만 Y 행 (60 말)가 삽입되고있다. 그 맞습니까? 실제 목적지 테이블에 삽입하는 대신 더미 테이블에 삽입하여 모든 행이 올바르게 리디렉션되는지 확인하십시오. OLE DB 대상에서 새로 만들기 ... 버튼을 클릭하여 더미 테이블을 만들 수 있습니다. 입력 열과 일치하는 테이블을 만듭니다. 그 문제를 좁히는 데 도움이 될 수 있습니다.

편집 2 :

사용하려는 테이블의 이름은 무엇입니까? 나는 그것이 중요하다고 생각하지 않는다. 그 이름이 예약 된 키워드인지 궁금합니다. 내가 생각할 수있는 또 하나의 사실은 대상 테이블 (패키지 내 또는 패키지 외부)에서 일부 작업을 트리거 할 수있는 다른 프로세스가 있는지 여부입니다. 다른 프로세스가 테이블에서 행을 삭제할 수도 있습니다.

+1

Broadcasting_IBI가 투표의 이름이었습니다. 투표를 진행하면서 일부 행을 삭제하는 프로세스가 있었지만 생각하지 못했습니다. 감사합니다. 감사합니다. – Hugo

관련 문제