2014-09-16 1 views
3

SSIS를 사용하여 SQL Server에서 MySQL로 테이블을 전송하려고하는데 SQL Server 및 텍스트에서 varchar (max) 한 열에 오류가 있습니다. MySQL에. 지금까지 ODBC 데이터 흐름에 대한 OLE DB와 BCP를 ODBC 데이터 흐름에 대한 플랫 파일로 처리하려고 시도했습니다. 해당 필드는 SSIS에서 DT_TEXT로 구성됩니다. 두 경우 모두 다음과 같은 오류 집합이 생성됩니다.SSIS를 사용하여 SQL Server varchar (max)를 MySQL 텍스트로 전송할 수 없습니다.

[ODBC Destination [47]] Error: Open Database Connectivity (ODBC) error occurred. 
SQLExecute returned error while inserting row 1 

[ODBC Destination [47]] Error: Open Database Connectivity (ODBC) error occurred. 
state: 'HYC00'. Native Error Code: 0. [MySQL][ODBC 5.2(a) Driver][mysqld-5.1.69-log] 
Parameter arrays with data at execution are not supported 

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput 
method on component "ODBC Destination" (47) failed with error code 0x80004005 while 
processing input "ODBC Destination Input" (58). The identified component returned an 
error from the ProcessInput method. The error is specific to the component, but the 
error is fatal and will cause the Data Flow task to stop running. There may be error 
messages posted before this with more information about the failure. 

열을 무시하도록 선택하면 두 버전의 패키지가 정상적으로 실행됩니다.

이전에 openquery가있는 연결된 서버를 사용하여이 작업을 수행 했음에도 아무런 문제없이 작업했음을 알려드립니다. 그러나 성능 문제로 인해 연결된 서버에서 벗어나려고합니다.

업데이트 : 나는 SQL 서버 BCP out 다음에 MySQL LOAD DATA INFILE을 사용하여 원하는 동작을 수행 할 수 있었지만 확실히 더 쉬운 방법이므로 SSIS 데이터 흐름을 사용하여이를 수행하는 방법을 알고있는 것이 좋습니다. 메모리에서 작동하기 때문에 더 빠르다.

답변

1

텍스트 인코딩이 원본 및 대상에서 동일하거나 그렇지 않은 경우 SSIS에서 적절하게 변환하는지 확인하십시오.

다음 기사는 다른 방향 (MySQL에서 SQL 서버로)으로 진행되지만 두 데이터베이스에서 사용되는 인코딩 유형에 대한 유용한 정보와 몇 가지 예제가있는 경우 유용 할 수 있습니다 이런 종류의 변환을 수행하는 방법 : 나는 작업 속성에서 ODBC 대상을 변경하여이 문제를 해결

http://agilebi.com/ddarden/2010/09/19/extracting-mysql-utf-8-fields-with-ssis/