2014-04-04 1 views
2

Excel 용 MySQL 플러그인을 사용하여 엑셀 시트의 데이터를 MySQL 데이터베이스로 가져 오려고합니다. 일부 셀에는 세미콜론이있는 텍스트가 있으며 이미 SQL 오류가 발생했음을 알았습니다. 세미콜론을 백 슬래시로 이스케이프 처리했지만 오류 메시지가 계속 나타납니다. 세미콜론을 어떻게 피할 수 있습니까?이스케이프 세미콜론; MySQL 용 Excel

+1

, 다음을 대체 :에 버그를보고 주시기^문자는 가져온 후에 데이터베이스에 있습니다. –

+0

'Cstr (...) '을 사용하여 셀을 문자열로 변환하면 어떤 일이 일어날 지 궁금합니다. –

답변

2

카이, 이 동작은 순수 엑셀 MySQL의의 잘못이며, 버그 것 같다. 다음

당신의 MySQL을위한 엑셀 창을 클릭 Options에서

Preview SQL statements before they are sent to the serverAccept

를 선택 : 다른 사람에 의해 제안 당신이 당신의 엑셀 데이터 변경에 대한 날카로운하지 않은 경우 한편

는 해결 방법은

그런 다음 추가 기능을 사용하여 내보내기/추가 데이터로 정상적으로 진행하십시오. 그러나 Review SQL script 창이 나타나면 내용을 다른 SQL 도구 (MySQL 워크 벤치 HeidiSQL, SQLWorkbench 등)에 복사하고 실행하십시오. 그런 다음 Mysql-for-Excell 팝업에서 취소를 클릭하고 필요한 경우 쿼리를 새로 고칩니다.

또한 : MySQL 데이터베이스에 데이터를 가져, 아마도 당신은 Excel 스프레드 시트에서 사용되지 않는 특수 문자 (예를 들어, ^)와 세미콜론을 대체 할 수 http://bugs.mysql.com/

+0

이와 비슷한 상황이 발생했습니다. Excell 용 버전 1.2.1에서 버전 1.2.1 로의 업그레이드가 문제를 해결했습니다. – Jance

0

세미콜론을 고유 한 텍스트로 바꿉니다. [세미콜론]. 다음은 SQL로 데이터를 가져오고 내가 당신이 CSV 파일에서 데이터를 가져올 때 Excel이 가지고있는 요구 사항을 고려하기 만하면 모든 생각

UPDATE your_table 
SET your_field = REPLACE(your_field, '[SEMICOLON]', ';') 
WHERE your_field LIKE '%[SEMICOLON]%' 
-1

같은 것을 실행 (구문 분석 규칙은 아마도 동일하거나 유사하다) 귀하의 경우, 필드에 특수 문자가 포함되어 있으면 Excel에서 내용을 가져 오기 전에 큰 따옴표로 값을 인용하십시오.

그래서 :

UPDATE table 
SET field = '"' || field || '"' 
WHERE field like '%,%' 

는 다음과 같은 규칙이 적용해야한다 : 모든 필드가 될 수있는 라인 휴식을 포함

  • 필드는 두 번을 인용, 및/또는 쉼표가
  • 을 인용한다 따옴표로 묶기 (큰 따옴표로 묶음)
  • 필드의 (이중 따옴표 문자는 두 개의 따옴표 문자로 나타내야합니다.

자세한 내용 : Wikipedia: Comma-separated values