2013-04-08 2 views
13

데이터 가져 오기 및 내보내기 도구를 사용하여 Excel에서 SQL Server로 데이터를 가져 오는 데 이상한 일이 있습니다.Excel에서 SQL Server로 데이터 가져 오기에서 모든 데이터를 가져 오지 못함

데이터가 부족하다는 것은 Excel에서 데이터를 볼 수 있지만 모든 데이터를 가져올 수 없다는 점입니다.

하나의 스프레드 시트가 포함 된 Excel 통합 문서가 있습니다. 열의 데이터를 볼 수 있으며 모든 것이 잘 보입니다. 가져 오기 마법사를 사용하여 데이터를 가져올 때 열과 미리보기 데이터를 볼 수 있지만 가져 오기가 실행될 때 데이터가 모두 전송되지는 않습니다. 오류가없고 가져 오기 프로세스가 완료되면 테이블에 Null 값이 삽입됩니다.

숫자가 대부분 발생하는 것 같습니다. 그래서 이름, 성 및 ID 번호에 대해 세 개의 열이 있다고 가정 해 봅시다. 이름과 성 모두와 ID 번호 중 일부를 얻을 수 있습니다. 무슨 일이 일어나고 있는지 패턴을 찾을 수 없습니다.

이전에 이런 일이 있었는데 가져 오기 프로세스 중에 선택할 수있는 스프레드 시트가 두 개인 DataImport와 DataImport $ 인 것으로 나타났습니다. 첫 번째 것은 위에서 설명한대로 실패하고 두 번째 스프레드 시트는 완벽하게 가져옵니다. 이번에는 선택할 스프레드 시트가 하나만 있습니다.

저는 주로 XLS 문서와 32 비트 가져 오기 마법사를 64 비트 시스템에서 사용하고 있습니다.하지만 아무 것도 시도하지 않았습니다.

두 가지 스프레드 시트 (간혹)가있는 이유와이 가져 오기가 실패하는 이유에 대한 아이디어가 있습니까?

데이브

+1

정확한 데이터 범위를 복사 한 다음 새로운 Excel 파일을 만들려고 할 수 있지만 데이터를 붙여 넣기 전에 새로 만든 Excel 파일의 셀 형식을 텍스트로 설정하고이 새 파일을 가져올 수는 있습니까? –

+1

모든 서식을 일반 텍스트로 변경하려고 시도했지만 도움이되지 않았습니다. 숫자 필드 중 일부는 인접한 셀이 숫자이고 이것이 텍스트라는 것을 나타내는 작은 삼각형을 가졌으므로 열 형식을 다른 것으로 변경하려고했습니다. 그러나 결과에 변화가 없습니다. 데이터를 복사하여 새 스프레드 시트에 붙여 넣으려고하지는 않았지만 시도해 볼 수는 있습니다. 몇 분 후에 어떻게되는지 알려 드리겠습니다. –

+1

행운이 없습니다. 복사 및 붙여 넣기 트릭이 작동하지 않았습니다. 실패한 열이 세 개의 올바른 행을 가진 다음 빈 행 (해당 ID 열의 경우)과 그 이후에 아무것도 가져 오지 않은 행 (ID 열의 경우)이 있음을 확인했습니다. 또한 중요한 경우 Excel 2013을 사용하고 있습니다. –

답변

0

가져 오기 마법사를 사용하고 있습니까? 마법사의 "소스 테이블 및 뷰 선택"페이지에서 Edit Mappings을 클릭하고 각 원본 열에 대해 형식, Nullable 및 크기 열을 확인하십시오. 뭔가 제대로 매핑되지 않는 것 같습니다.

+0

예, 마법사를 사용하고 있습니다. 매번 수동으로 확인 (또는 경우에 따라 생성) 할 때마다 매핑이 ​​정확해질 것이라는 확신을 갖습니다. 수년 동안 수백만 행을 전송하는 데 Excel을 사용해 왔지만, 항상 작동하지 않는 가져 오기 파일을 제공하는 클라이언트가 하나있어서 손실이 발생했습니다. –

0

아마도 빈 행으로 Sql Server가 나머지 데이터를 무시하게됩니다. 당신이 엑셀 파일의 스키마와 처음 다섯 행을 확실히 공유 할 수 있을까요? 올바른 3 개와 다음 2 개 레코드

+0

불행히도이 스프레드 시트를 공유 할 수 없으며 스프레드 시트를 수동으로 편집하면 데이터가 오염된다는 이론 때문에 편집하고 업로드하는 것이 가치가 있을지 모르겠다. 나는 그것이 도움이 될 것이라고 생각한다면 시도해 볼 수 있습니다. –

+0

엑셀 파일을 csv로 저장하고 csv 파일로 가져 오시겠습니까? 이 문제의 원인을 더 잘 이해할 수 있습니다. –

+0

파일을 탭으로 구분 된 파일로 내 보낸 다음 다시 가져 와서 작동했습니다. 이 솔루션은 궁극적으로 궁극적으로는 장기적으로 작동하지만 Excel에 실패한 이유를 찾는 데 관심이 있습니다. –

32

귀하의 질문에 대한 대답은 HOW 데이터가 Excel에 저장되어있을 수 있습니다.

방금 ​​같은 문제가 발생했습니다. 두 개의 값 유형 (대시가있는 숫자 및 숫자)이 포함 된 열이 있습니다. (예 : 51000 및 2009-00949) NVARCHAR 또는 VARCHAR 중 하나로 가져올 필요가 있지만 SQL 가져 오기 마법사 (SQL2005)는 대시 또는 숫자가 아니라 대시 또는 숫자가있는 숫자 만 가져옵니다. , 첫 번째 레코드에 있던 유형에 따라 다릅니다. 가져 오지 않은 값은 필드에 'null'값을 가지므로 내 레코드가 쓸모 없게됩니다.

Excel (숫자, 텍스트, 일반 등)의 서식 | 셀 메뉴 옵션과 SQL의 다양한 매핑 옵션 (nvar, nvarchar, varchar, sqlvariant, float)을 사용하지 않고 시도해 보았습니다.

해결 방법은 숫자 값을 텍스트로 저장하는 셀 서식 옵션이 아닌 Excel의 데이터 | 텍스트를 열 옵션을 사용하는 것입니다. 이것을 열에 사용하면 숫자 값 (예 : 51000)이 텍스트 값으로 저장된 숫자로 변환되고 (작은 녹색 삼각형 오류가 왼쪽 상단 모서리에 나타남) 대시가있는 숫자는 텍스트로 유지됩니다. 작은 녹색 삼각형 오류가있는이 형식으로 데이터를 남겨 두어야했습니다. 그렇지 않으면 SQL로 성공적으로 가져올 수 없었습니다. C 럼의 데이터가이 형식으로 저장되면, 두 개의 유형의 C 럼 데이터 (숫자와 숫자는 대시로)가 다른 레 Z 드 데이터와 함 2 올 Y로] 입되고 C 럼에는 널값이 없습니다.

+1

이번 주에 다시이 문제를 해결하기 위해 귀하의 회신이 적시에 이루어졌습니다. 내가 알아 차 렸던 점은 스프레드 시트를 포맷하는 것이 도움이된다는 것입니다. 설명 된대로 데이터 서식을 지정하는 데 도움이되는 경우와 그렇지 않은 경우가 몇 가지 있습니다. 그리고 나는 운이나 그 이유를 찾을 수 없습니다. –

+2

+100! 훌륭한. 나는 이것을 끊임없이 끊임없이 싸우고 있으며 그 해결책은 아주 간단합니다. 나는 그것에 대해 생각했으면 좋겠다. 고맙습니다! –

+1

고마워요! 이것은 나를 괴롭혔고, Data To Texts Columns가 해결책이었습니다! – Neil

1

내 이슈는 내가 가져온 파일이 오래되고 다소 악의적 인 파일이었습니다. 파일을 열어 .xlsx 파일로 저장하고 그 후에 파일을 null 데이터없이 성공적으로 가져 왔습니다.

0

해당 열의 모든 행을 선택하고 Excel에서 유형을 텍스트로 변경 한 다음 전체 열을 선택하고 유형을 텍스트로 변경합니다. 올바르게 작동합니다.

0

나는 또한 문제가 있습니다. 문제를 해결할 수 있었던 유일한 방법은 .xlsx 파일을 .csv 파일로 저장 한 다음 .csv 파일을 SQL Server "가져 오기 데이터"에 사용하는 것입니다.

Microsoft Excel과 Microsoft SQL Server 간의 통합이 더 깨끗해 보입니다.

내 버전은 다음과 같습니다 엑셀 2013 SQL 서버 2012

+1

CSV는 사용할 수 없지만 XLS를 XLS로 저장하고 32 개 가져 오기 프로그램을 사용하면 다소 안정적인 결과를 얻는 것으로 보인다. –

1

내가 텍스트 데이터는 위에 있었다 있도록 데이터를 정렬하여 문제를 해결할 수 있었다. 그런 식으로 SQL Server는 숫자 데이터가 아니라 텍스트 데이터라는 것을 알았습니다.

0

나는 똑같은 문제에 직면했다. .xlsx 파일을 사용하여 내 문제를 해결했다.

0

마지막으로 일반에 셀을 포맷하면 숫자 값이있는 곳에서 작동하지만 이전에는 % s을 (를) 표시했지만 지금은 해결됩니다.

관련 문제