데이터베이스 88

ORA-01861: literal does not match format string 에러 원인

ORA-01861: literal does not match format string 의 에러 원인은varchar2 형식의 값을 date 형식과 비교하려 할때 문제가 발생한다예를들어 aaa 라는 컬럼에 20141027 이라는 문자 형식의 데이터가 들어가 있는데 이거를aaa between to_date(start_dt, 'YYYYMMDD') and to_date(end_dt, 'YYYYMMDD') 처럼 검색하려 할때 발생한다.따라서 이럴때는 변환 없이 그냥 aaa between start_dt and end_dt 로 검색하면 된다.단, SYSDATE 로 검색 할 때에는 to_char(SYSDATE, 'YYYYMMDD') 로 해줌녀 된다.

ORA-01858 에러

ORA-01858: 수치를 지정해야 할 위치에 비수치 문자가 지정되었습니다 이런 오라클 에러메시지는 보통 날짜형태 또는 날짜를 문자형태로 변환하여 처리하는 구분에서 에러가 발생함. 예를 들면 to_char(sysdate, 'yyyymmdd') 같은 구문에서 to_char 대신 to_date 를 쓰는 등 sql 을 잘못 작성하는 경우이거나 to_date() 함수를 사용할때 정확하지 않은 날짜구문을 입력한 경우 발생한다.

iBatis 에서 select key 를 이용하여 키 값 가져오기

프로그램을 짜다보면 첫번째 내용을 인서트 한 이후 그 키값을 가지고 두번째 내용을 인서트를 해야 하는 경우가 종종 있다. 이럴경우 iBatis 에서 select key 를 이용하여 그 값을 추출 해 낼 수 있다. 1. xml 설정 부분에서 다음과 같은 방법으로 구현한다. SELECT NVL(MAX(BOARD_ID), 0) + 1 FROM BOARD INSERT INTO BOARD ( .... 2. dao 단에서 다음과 같은 방법으로 키 값을 받는다. /** * 게시물 작성 * * @param Board * @throws Exception */ public String insertArticle(Board board) throws Exception { String result = (String) insert..