database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39414 게시물 읽기
No. 39414
ORA-01841 오류
작성자
신동화(belike)
작성일
2012-04-25 13:17
조회수
6,395

select error : ora-01841(full)year nust be between -4773 and +9999 and not be 0

이런 오류는 데이타 타입을 맞춰야 한다고는 하는데..

 (months_between(substr( '2011',1,4) || substr(T1.JOIN_DATE,5,4),T1.JOIN_DATE) / 12 ) >= 1
 
 
 select 문에서는 오류가 없는ㄷ where절에 넣으면 이런 오류가 납니다.
 
 
 JOIN_DATE 의 데이타 타입은 char(8)입니다.
 
 조언 부탁 드립니다..

이 글에 대한 댓글이 총 2건 있습니다.

JOIN_DATE 컬럼에 잘못된 값이 들어가 있어서 그런거 같은데...

예를 들어

'20120101' 이런식으로 제대로 들어간게 아니고,

'E0120101' 이런식으로.

그리고, SELECT 문에서는 오류가 안난다는건,

위와 같은 잘못된 데이터가 이미 WHERE 조건에서 걸러졌기 때문에 에러가 안나는건 아닐까요?!

제가 보기에는 JOIN_DATE 컬럼에 대한 데이터 정제가 필요해 보입니다.

그리고, 가능하면 months_between function 안에서는 to_date 등을 써서 데이터 타입을 맞추는게 좋지 않을까요.

임병천(bchlim)님이 2012-04-25 13:40에 작성한 댓글입니다.

감사합니다..

join_date에 잘못된 값이 들어가 있었어요

'.0100101' 요렇게

잘못된 데이타가 들어가지 못하도록 프로그램에서 오류체크 하는 로직을 추가했습니다.

감사합니다.

신동화님이 2012-04-25 17:45에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39417nvarchar2 관련 질문입니다. [1]
조동건
2012-04-25
4022
39416쿼리 질문 좀 드리겠습니다. [1]
선한양심
2012-04-25
4176
39415sql 도움 부탁드립니다 [3]
초보
2012-04-25
4924
39414ORA-01841 오류 [2]
신동화
2012-04-25
6395
39413쿼리 문의 [1]
진희
2012-04-24
4258
39412쿼리문 문의 드립니다 SELECT ROW별 검색 조건 [3]
최상민
2012-04-24
5425
39411sql 도움 부탁드립니다 [3]
오라클초보
2012-04-23
4258
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다