2012-08-17 3 views
0

내 SSIS 패키지 (Sql 2008 R2)에서 TransferObjectsTask 작업이 있으며이 작업에는 DatabaseInfoCollection 형식 인 DatabaseDetails라는 속성이 있습니다. 내가 지금하고있는 일은 스크립트 태스크에서 미리 준비하고 객체 유형의 변수에 저장 한 다음이 변수를 TransferObjectsTask 작업의 DatabaseDetails 속성에 전달하여이 속성의 값을 지정하는 것입니다. 충분히 간단합니다.SSIS - 작업 표현식에서 개체 변수 전달

그러나 이미 짐작할 수 있겠지만 나는 할 수 없습니다. 표현식에 변수를 지정하면 ...

"표현식을 평가할 수 없습니다./변수의 데이터 유형이 표현식에서 지원되지 않습니다."

어떻게이 문제를 해결할 수 있습니까?

표현식에 변수 이름이 있으므로 "평가"할 것은 없습니다. 변수를 지정할 수없는 경우 작업에서 표현식에 속성을 표시하는 이유는 무엇입니까? 말이되지 않습니다.

무엇이 부족합니까 ??

감사합니다.

답변

1

표현식에서 개체를 참조 할 수 없습니다. 오브젝트 데이터 유형이 너무 일반적입니다. 말 그대로 객체 데이터 유형으로 무엇이든 넣을 수 있습니다. 100 개의 데이터베이스 목록을 객체 변수에 집어 넣어 (배열로 만든다), 그 변수를 oledb 연결 관리자의 InitialCatalog 속성에 전달한다고 상상해보십시오. 연결 관리자는 개체를 어떻게 처리해야하는지 알지 못할뿐만 아니라 연결 관리자가 한 번에 100 개의 데이터베이스에 연결할 수 없습니다.

정확히 무엇을하려고합니까? 나는 TransferObjectsTask에 익숙하지 않다. (그리고 제품이 나왔기 때문에 중요한 SSIS 작업을 해왔다.) 이 작업은 맞춤 작업입니까? SQL 2012의 제어 흐름 작업에는 포함되어 있지 않습니다. SQL Server 개체 전송 작업이 있습니다. 네가 말하는거야? 그렇다면 Powershell 또는 Red Gate의 SQL Compare와 같은 타사 도구가 훨씬 더 좋은 옵션입니다. SSIS는 ETL (버퍼에서 추출, 변환, 수백만/수십억 개의 레코드를 다양한 소스 & 대상에서 /로로드)에서 매우 능숙합니다. 그것은 관리 작업에서 조금 kludgy. 백업, 스키마 업데이트 배포 또는 인덱스 유지 관리와 같은 간단한 관리 작업에는 절대로 사용하지 않습니다.

+0

감사합니다. 데이터베이스 복사 작업을 수행하려고합니다. SQL Mgmt Studio의 Database Copy 마법사로 시작한 다음 자동 생성 패키지를 DTSX 파일로 내 보냈습니다. TransferObjectsTask 작업 ("Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask, Microsoft.SqlServer.TransferObjectsTask, 버전 = 10.0.0.0, 문화 = 중립, PublicKeyToken = 89845dcd8080cc91") 및이 경우에만 내가 앉아있는 것으로 나타났습니다. DTSX 파일. "SQL Server 개체 전송"과 같은지 확실하지 않습니다. – gmancoda

+0

귀하의 설명을 이해하지만, 귀하의 예를 들어 InitialCatalog 속성의 유형이 정확히 개체의 종류를 알려주지 않을까요? 그래서 그것에 전달 된 모든 가치를 그 유형으로 취급하고 그것에 대해 노력하지 않겠습니까? 적어도 그건 내 생각이다. 표현으로 평가하는 것에 대해 신경 쓰지 마라. 지금은 SSIS에 익숙하기 때문에 SSIS를 고수하고 있습니다. – gmancoda

+0

문제를 이해하기 위해 코드의 개체 작업을 제안합니다. 하나의 스크립트 태스크에서 오브젝트를 작성하여 채우고이를 변수에 전달하십시오. 다른 스크립트 작업에서 변수를 읽고 해체하십시오. 이렇게하면 개체를 훨씬 잘 이해할 수 있습니다. – brian

0

식에 개체를 추가하는 것은 의미가 없습니다. 객체의 구조를 어떻게 알 수 있습니까?

더 구체적으로 할 수 있습니까? Transfer SQL Server Objects Task 은 단순히 원본에서 대상으로 개체를 전송합니다. "DatabaseDetails"에 무엇을 설정하려고합니까 (이 속성을 찾을 수 없습니다)

+0

"Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask, Microsoft.SqlServer.TransferObjectsTask, 버전 = 10.0.0.0, 문화 = 중립, PublicKeyToken = 89845dcd8080cc91". 데이터베이스를 복사하려고합니다. 객체가 할당 된 속성과 동일한 유형으로 간주하기를 바랬습니다. – gmancoda