2019년 2월 15일 금요일

[SSIS] mysql table에 데이터 넣기

OS: Windows Server 2012 R2
SQL: Microsoft SQL Server 2016(SP1)
Visual Studio: Microsoft Visual Studio 2015 Shell

보통은 mysql에서 테이블 조회를 했는데 처음으로 mysql table에 데이터를 넣을 일이 생겼다. 작업하면서 나왔던 이슈와 해결 방안을 적어본다.

1. mysql connection이 보통은 mysql connector로 가능한데 데이터를 넣기 위해서는 mysql ODBC Driver를 설치해야 한다. 32bit로 설치해야 에러가 발생하지 않았다. 
ODBC 등록 후 연결관리자에서 .net provider\Odbc Data Provider에서 세팅한 ODBC 명을 선택하여 사용자 이름과 암호를 넣는다.

2. Project Properties > Configuration Properties > Debugging > Debug Option의 Run64BitRuntime 을 True에서 False 로 변경 이건 ODBC를 32bit로 세팅해서 그런 것 같음

3. SQL Agent 등록시 실행 옵션에 32비트 런타임 사용을 체크해줍니다. 1,2와 같은 이유 인것 같음

4. 이건 그냥 개인 적인 실수 인데 ODBC 등록 시 사용자 DSN과 시스템 DSN이 있는데 시스템 DSN으로 설정해줘야 정상적으로 SQL Agent에서 실행된다. (이것 때문에 매우 많은 시간을 허비했음...)

5. 가장 핵심적인것은 mysql 서버의 환경번수 중 sql_mode = 'ANSI_QUOTES'; 를 추가 해줘야 하는 것이다. 이 옵션이 되어있지 않으면 syntax error가 발생하면서 job이 실행되지 않는다.

SSIS는 매번 새로운 좌절과 새로운 깨달음을 준다. 이번에도 많이 배운 것 같다.......




댓글 없음:

댓글 쓰기