조회 수 18416 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

○ 날짜 컬럼을 문자(char, varchar)로 설계
  문자로 설계한 날짜 컬럼에서 날짜형식으로 변경하면 쿼리 에러가 발생 함.  (예 : 20120132, 20110a03 등)

 

○ 해결방법
  - 데이터 입력시점에 정확한 날짜 데이터만 들어가도록 함
  - 기존의 오류 데이터는 사용자정의 함수를 작성하여 데이터를 찾고, 변환 함


○ 테스트 테이블생성
   - create table tmp_test(tmp_date varchar(8));

 

○ 테스트 데이터 
insert into tmp_test VALUES('20120108');
insert into tmp_test VALUES('20120109');
insert into tmp_test VALUES('20120110');
insert into tmp_test VALUES('20120111');
insert into tmp_test VALUES('20120112');
insert into tmp_test VALUES('20120113');
insert into tmp_test VALUES('20120114');
insert into tmp_test VALUES('20120115');
insert into tmp_test VALUES('20120132');


○ 오류 확인(날짜 관련 함수 사용 불가), 어떤 데이타가 오류이지 확인불가
SELECT to_date(tmp_date,'yyyymmdd')+1  from tmp_test;


○ 사용자정의 함수 작성(isdate.java)
import java.sql.*;

public class isdate{
    public static String chkDate(String strDate, String strDateFormat) throws SQLException {

        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try{
            Class.forName("cubrid.jdbc.driver.CUBRIDDriver");
            conn = DriverManager.getConnection("jdbc:CUBRID:localhost:33000:demodb:::","","");
           
            String sql="SELECT to_date('" + strDate + "', '" + strDateFormat + "')" ;
           
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);

            rs.close();
            stmt.close();
            conn.close();
            return "YES";

        } catch ( SQLException e ) {
            if ( conn != null ) conn.close();
            return "NO";
        } catch ( Exception e ) {
            return "NO";
        } finally {
            if ( conn != null ) conn.close();
        }
    }
}


○ 자바 컴파일 및 등록
 - 자바컴파일 : Javac isdate.java
 - CUBRID에 등록 : loadjava demodb isdate.class

 

○ 사용자정의 펑션 생성
create function isdate( strDate varchar, strDateFormat varchar) return string
as language java
name 'isdate.chkDate(java.lang.String, java.lang.String) return java.lang.String';

 

○ 날짜검사 테스트
call isdate('20120131', 'YYYYMMDD') ;
call isdate('20120132', 'YYYYMMDD') ;

 

select isdate(tmp_date,'YYYYMMDD'),   decode(isdate(tmp_date,'YYYYMMDD'), 'YES', tmp_date, '') as err_chk,tmp_date 
from tmp_test ;


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
200 질의작성 오류데이타검증 - 숫자 이외의 데이타 확인하는 방법 권호일 2013.01.17 21677
199 질의작성 join update 처리방법입니다.(연관성 있는 테이블을 조인하여 처리하는 UPDATE 구문) 권호일 2012.11.30 21013
198 마이그레이션 MySQL+XE를 CUBRID+XE로 운영하기 – mysqldump파일과 CMT사용 file cubebridge 2012.11.13 23607
197 CUBRID 매니저 CUBRID와 CUBRID Web Manager설치, 그리고 XE의설치 및 연동까지 file cubebridge 2012.11.13 19616
196 응용개발 CUBRID-PHP-Driver 연동가이드 file cubebridge 2012.11.13 17957
195 마이그레이션 MySQL에서 CUBRID로 갈아탈 때 알아야 할 것 cubebridge 2012.11.13 23400
194 응용개발 오라클 to CUBRID로 마이그레이션 수행 시 주의사항 cubebridge 2012.11.12 17398
193 마이그레이션 오라클의 order by 시 first와 last 대체 사용법 file cubebridge 2012.11.12 21312
192 운영관리 CUBRID에서의 BLOB/CLOB 사용시 백업 및 복구에 대한 주의 점 cubebridge 2012.09.18 33758
191 기타 전자정부 표준프레임워크 CUBRID 사용 방법 문의 참조 cubebridge 2012.09.17 21339
190 운영관리 Windows 서버에서 [장치에 쓰기 캐싱 사용] 설정/해제에 따른 성능 차이 이용미 2012.06.30 20822
189 운영관리 데이터 입력 중 디스크 공간 부족 오류가 발생하였을 때, 복구 방법 이용미 2012.06.30 14964
188 질의작성 게시판 응용 중 조회수로 정렬하는 경우 인덱스 생성 방법 1 손승일 2012.06.23 14420
» 질의작성 문자(char, varchar)로 설계한 날짜데이타 검증하기 권호일 2012.04.27 18416
186 CUBRID 매니저 CUBRIDManager의 접속 정보 이관 file cubebridge 2012.04.14 13024
185 마이그레이션 CUBRID Migration Tookit 8.4.1 file cubebridge 2012.04.14 11618
184 운영관리 CUBRID 에서의 사용자 권한관리 방법 file cubebridge 2012.04.14 24688
183 마이그레이션 데이터베이스 마이그레이션(unloaddb & loaddb) 의 효과적인 수행방법 file cubebridge 2012.04.14 25233
182 질의작성 세부내역과 소계를 한개의 쿼리문장으로 수행하는 SQL 권호일 2012.03.31 14578
181 질의작성 한건의 데이타를 여러건으로 조회하는 쿼리입니다. 권호일 2012.03.30 10117
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5