excel파일을 python을 이용해 mysql workbench로 업로드 하는데 11자리를 넘지 않는데 넘는다고 나옵니다....

조회수 709회

이미지

값을 조절하면서 코드를 돌려본 결과

r in range (1,1375)까지는 에러가 안나는데 r in range (1,1376)부터 에러가 납니다.

DataError Traceback (most recent call last)

in

37 values = (year,hscode,expwgt,expdlr,impwgt,impdlr,balpayments)

38

---> 39 cursor.execute(sql, values)

40 conn.commit()

41

~\Anaconda3\lib\site-packages\pymysql\cursors.py in execute(self, query, args)

168 query = self.mogrify(query, args)

169

--> 170 result = self._query(query)

171 self._executed = query

172 return result

~\Anaconda3\lib\site-packages\pymysql\cursors.py in _query(self, q)

326 self._last_executed = q

327 self._clear_result()

--> 328 conn.query(q)

329 self._do_get_result()

330 return self.rowcount

~\Anaconda3\lib\site-packages\pymysql\connections.py in query(self, sql, unbuffered)

515 sql = sql.encode(self.encoding, 'surrogateescape')

516 self._execute_command(COMMAND.COM_QUERY, sql)

--> 517 self._affected_rows = self._read_query_result(unbuffered=unbuffered)

518 return self._affected_rows

519

~\Anaconda3\lib\site-packages\pymysql\connections.py in _read_query_result(self, unbuffered)

730 else:

731 result = MySQLResult(self)

--> 732 result.read()

733 self._result = result

734 if result.server_status is not None:

~\Anaconda3\lib\site-packages\pymysql\connections.py in read(self)

1073 def read(self):

1074 try:

-> 1075 first_packet = self.connection._read_packet()

1076

1077 if first_packet.is_ok_packet():

~\Anaconda3\lib\site-packages\pymysql\connections.py in _read_packet(self, packet_type)

682

683 packet = packet_type(buff, self.encoding)

--> 684 packet.check_error()

685 return packet

686

~\Anaconda3\lib\site-packages\pymysql\protocol.py in check_error(self)

218 errno = self.read_uint16()

219 if DEBUG: print("errno =", errno)

--> 220 err.raise_mysql_exception(self._data)

221

222 def dump(self):

~\Anaconda3\lib\site-packages\pymysql\err.py in raise_mysql_exception(data)

107 errval = data[3:].decode('utf-8', 'replace')

108 errorclass = error_map.get(errno, InternalError)

--> 109 raise errorclass(errno, errval)

DataError: (1264, "Out of range value for column 'impwgt' at row 1") 무엇이 잘못된 것일까요? impwgt는 11자리를 넘지 않습니다.

이미지

impwgt데이터가 2678137216으로 10자리인데다가 넉넉히 int(12) 혹은 int(30)까지 넓혔는데도 에러가 뜹니다. 혹시 짐작가는 문제점이 있으신지요?

  • int의 최대 값은 2,147,438,647 인 것으로 알고 있는 데 이 범위를 넘어서 그런게 아닐까요? 타입을 bigint로 변경해 보시기 바랍니다. 참고로 괄호 안의 숫자는 0이 채워질 자리수를 의미하는 것이지 저장되는 수의 자리수를 의미하는 것은 아닙니다. 알 수 없는 사용자 2019.10.16 10:28
  • 아 정말 감사합니다 ^~^ magic0111 2019.10.16 10:34

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)