ORA-01438: 지정한 정도를 초과한 값이 열에 지정되었습니다 0 5 12,220

by 가와사미 [2008.05.20 23:03:54]


ㅜ.ㅜ ORA-01438: 지정한 정도를 초과한 값이 열에 지정되었습니다 ...이 메세지 가 뜨내요....

mysql에서 덤프뜬다음에 오라클로 가져와서 집어 넣을려고 하는데 계속 이 메세지가 뜨내요~ㅜ.ㅜ

INSERT INTO report VALUES ('2006-11-04 15:21:22','690063',126.8413560000,35.1477010000,90.00,185.20,1,-1,0.00)
                                                          *
1행에 오류:
ORA-01438: 지정한 정도를 초과한 값이 열에 지정되었습니다 

   mysql에 있던 테이블 구조 입니다.
+--------+---------------+------+-----+---------------------+-------+
| Field   | Type          | Null | Key | Default             | Extra |
+--------+---------------+------+-----+---------------------+-------+
| tstamp | datetime      |      | PRI | 0000-00-00 00:00:00 |       |
| tid        | char(6)       |      | PRI |                     |       |
| x           | double(11,10) | YES  |     | NULL                |       |
| y          | double(11,10) | YES  |     | NULL                |       |
| dir         | double(3,2)   | YES  |     | NULL                |       |
| speed  | double(3,2)   | YES  |     | NULL                |       |
| status  | int(2)        | YES  |     | NULL                |       |
| link       | int(6)        |      | PRI | 0                   |       |
| pos       | double(3,2)   | YES  |     | NULL                |       |
+--------+---------------+------+-----+---------------------+-------+
9 rows in set (0.01 sec)

 

oracle에 만든 테이블 구조입니다.  어디가 잘못되었는지 알수가 없습니다.

지정한 정도를 초과한 값이 어느것인지도 알수가 없나요?ㅜ.ㅜ

 이름                                      널?      유형
 ----------------------------------------- -------- -------------------------
 TSTAMP                                             TIMESTAMP(9)
 TID                                                CHAR(6)
 X                                                  NUMBER(10,30)
 Y                                                  NUMBER(10,30)
 DIR                                                NUMBER(10,30)
 SPEED                                              NUMBER(10,10)
 STATUS                                             NUMBER(10)
 LINK                                               NUMBER(38)
 POS                                                NUMBER(10,10)

by 현 [2008.05.21 07:08:35]
NUMBER로 잡힌 것들이 이상하네요.
(10,3) 이라고 하면 총 10자리 중에서 소수점이 3자리라는 얘기 입니다.
혹시 그것이 문제가 아니라면 TIMESTAMP(9)도 의심해 볼 필요가 있겠네요.

by 현 [2008.05.21 07:12:10]
테스트 해보니 NUMBER 타입으로 잡힌 컬럼들이 문제네요.
왜 mysql에서는 double(11,10) 이렇게 잡혀있던 것을 오라클에서는 NUMBER(10,30) 이렇게 잡으셨는지요?

by 가와사미 [2008.05.21 08:47:45]
그러면 timestamp엔 문제가 없는건가요?
그리고 오라클에서 double형으로도 잡을수 있나요?해봤는데 안돼서 그냥
다 넘버타입으로 했고 (10,30)이말이 십진수는 10자리까지 소수점이하는30자리까지가 아닌가요? 아침부터 어것때문에 머리아파요~ㅜ.ㅜ

by 조상두 [2008.05.21 09:29:29]
(10, 30) 이건 숫자 10개중 30개를 소수점 자릿수로 사용한다는 건데..-_-;
40, 30 으루해야 정수 10개 소수점 30개가 잡힙니다..오라클에선...
전그리알고있음 -0-;

by 웅 [2008.05.21 11:19:00]
timestamp는 to_timestamp로 변환이 필요합니다.
number는 조상두님 말씀처럼 처리해야되는데 max38자리입니다.
참고하세요~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입