오라클을 사용하는 개발을 하다가 insert한 데이터가 나오지 않는 오류가 발생했다. DB를 직접 붙어서 작업을 마치고 웹페이지를 새로고침 했는데, 아무리 F5를 눌러도 나와야 하는 값이 다 나오지 않았다. DB를 다시 써보고 다시 작업을 해도 일정 데이터만 나오고 그 뒤의 데이터는 나오지 않는 것이었다. DB작업툴로 보면 데이터가 나오고 똑같은 쿼리로 작성해도 잘나왔다. 이유를 모르고 하루가 지나고 나서야. 이것이 DB작업툴에서 commit을 하지 않았던 오류인 것을 알았다. DML언어를 사용할 때는 항상 COMMIT도 함께 해줘야 한다. 예를 들어, 100개의 데이터가 있었을 때 20개를 삭제하고 30개를 다시 입력한다. 그러면 총 110개의 데이터가 나와야 한다. 하지만, commit을 하지 않을 ..
123456789SELECT * FROM ( SELECT ROWNUM RNUM ,A.* FROM (SELECT CENTER_ID, TEACHER_NAME, TYPE FROM TB_INSTRUCTOR GROUP BY CENTER_ID, TEACHER_NAME, TYPE ORDER BY TEACHER_NAME) A ) WHERE RNUM BETWEEN 1 AND 10;cs ROWNUM을 사용하여 다시 출력하면 된다.
SQL 수행작업 중 insert된 이후에 알 수 있는 값 또는, 생성된 값을 바로 가져와서 select 쿼리를 보내야 하는 경우가 있다. 주로 생성하고 난 후의 인덱스(번호)를 가져와 작업해야 하는 상황에서 많이 사용한다. 이런경우 java에서 insert 쿼리를 실행하고 값을 받은 후 값을 가지고 다시 쿼리를 DB에 전송하는 방법이 있다. 하지만, 불필요한 여러번의 DB 입출력은 시간이 느려진다는 단점이 있다. 그때, selectKey를 사용하여 바로 적용할 수 있다. 마이바티스, 아이바티스 두개 다 적용이 가능하다. selectKey는 DB에 명령을 한번만 보내며, 우선 입력한 값의 결과값을 다음 쿼리로 바로 return 시켜주는 것이다. 123 SELECT LAST_INSERT_ID()Colored..
오라클에서 아래와 같은 오류가 나타났다.ORA-01861: literal does not match format string01861. 00000 - "literal does not match format string" 문자열과 형식이 맞지 않아서 생기는 오류이다. Vo같은 객체에 자바의 경우 String으로 선언을 해두고 오라클에 data의 타입을 선언했었는데, 이러한 오류가 나왔다. 오라클 오류 : http://www.oracle.com/pls/db92/db92.error_search?prefill=ORA- 위의 오라틀 오류 사이트에서 오류 내역을 본 내용이다. ORA-01861 literal does not match format string Cause: Literals in the input mu..
null 일때 데이터 일괄적용을 할 때가 종종 생긴다. 새로운 프로젝트를 들어갔는데 이전 소스의 데이터가 전부 null 일 때가 있었다. 이유는 알 수 없지만.... 일단은 해결을 해야 하므로 SELECT COUNT(*) 를 하는 이유는 그저 실수하지 않기 위해서 일뿐이다. 123SELECT COUNT(*) FROM CLUB_INFO WHERE CLUB_ROOM_YN IS nullcommit UPDATE CLUB_INFO SET CLUB_RECRUIT_UNIT = 0WHERE CLUB_RECRUIT_UNIT IS nullcs
이번에 날짜별로 검색을 하는 쿼리를 짜면서 제약조건이 정말 중요하다는 것을 알았다. 날짜별로 검색할 때 고려해야 할 것 1. 년도2. 월3. 날짜4. 시간 년도 별로 검색하기 (테이블의 데이터 컬럼의 정의에 따라 달라질 수 있음) DATE 형태라고 가정.. 2016년 ~ 2017년=>> 201601010000 ~~ 201712310000 로 검색을 해야한다. 'YYYYMMDDHH24MI' 은 현재 날짜의 형태를 어떻게 출력하겠냐는 것이다. 년월일시분 까지 한다는 의미이다. 123456789101112131415161718192021 Colored by Color Scriptercs 1234567891011121314151617 전체년도 ${nowYear - status.current}년 전체월 ${sta..
그동안은 List나 여러번 INSERT를 하기 위해서는 Ajax 방식을 사용해서 여러번 넣거나 Map으로 객체를 담아서 사용을 했었다. 그런데, List 데이터를 foreach로 쿼리를 한번에 돌릴수 있다. 12345678910111213141516 insert into log( result, path, date )values ( #{item.result,jdbcType=VARCHAR}, #{item.path,jdbcType=VARCHAR}, #{item.time,jdbcType=VARCHAR} ) Colored by Color Scriptercs 참고 : http://fruitdev.tistory.com/187
1234SELECT USER_ID FROM TB_USER_INFOGROUP BY USER_IDHAVING USER_ID = '12@test.com'cs HAVING USER_ID https://docs.microsoft.com/ko-kr/sql/ssms/visual-db-tools/use-having-and-where-clauses-in-the-same-query-visual-database-tools 다이어그램 창에서 테이블이나 테이블 반환 개체의 개별 행에 WHERE 절이 먼저 적용됩니다. WHERE 절의 조건에 맞는 행만 그룹화됩니다.그런 다음 결과 집합의 행에 HAVING 절이 적용됩니다. HAVING 조건에 맞는 그룹만 쿼리 출력에 표시됩니다.집계 함수나 GROUP BY 절에도 나타나는 열에만 ..
가장 높은 숫자를 찾는 쿼리 MAX를 사용하면 된다. 1SELECT MAX(USER_NO) FROM TB_USER_INFOcs 가장 높은 숫자 +1 을 해서 INSERT를 하니까AUTO 증가와 비슷한 원리이다. 12INSERT INTO Notice (NOTICE_SEQ,TITLE)SELECT MAX(NOTICE_SEQ+1), 'SDFDSF' FROM Notice;cs 1SELECT CONCAT(LEFT(IFNULL(MAX(USER_NO),'P'),1), LPAD((RIGHT(IFNULL(MAX(USER_NO),'P'),5)+1),5,0)) FROM TB_USER_INFOcs 응용.. ▶ CONCAT('문자열1','문자열2','문자열3'...) - 문자열들을 이어준다.▶ LEFT('문자열',개수) - 문자..
mybatis에서 selectKey 사용법 DB작업을 하다보면 먼저 사전에 어떤 키값을 가져와서 증가시켜서 입력하거나 혹은 입력후에 증가된 키값을 가져올 필요가 있다.이럴때 mybatis에서 제공하는 selectKey를 이용하면 별도의 쿼리로직을 등록할 필요없이 해당 메소드에서 일괄처리할 수가 있다.샘플로 아래와 같은 board테이블이 있다고 하자(mysql, mariadb)1234567create table board( iq int not null auto_increment, boardID varchar(20) not null, title varchar(50) not null, content text not null, primary key(iq), unique(boardID));cs iq는 자동증가값이..
12cs
- Total
- Today
- Yesterday
- 톰캣
- 터미널
- Mac
- 성수밥
- 정규식
- 아파치
- 성수뚝떡
- input
- Apach
- Tomcat
- 르프리크
- Lalavel
- html
- LTFViewr
- 이클립스
- 토라식당
- 맥
- 최고심
- 또오류
- 오라클
- Eclipse
- globals.properties
- 관리자설정
- juso.go.kr
- 위잇딜라이트
- 힘냉면록
- 소년아저씨
- textcleaver
- server.xml
- floating button
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |