개발 251

[oracle]오라클 group by, rollup

프로그래밍의 실력을 쌓는 법!은~기초를 탄탄하게 중요하다고 생각합니다. 평소 무심코 썼던 group by....왜 무심코 쓰게 되냐면 기존의 프로젝트에 새로운 컬럼을 추가하고자 하면group by 형식이 아니라는 오류 메시지가 뜨죠... 그럼 그냥 group by 절에 컬럼을 추가해서 에러를 제거하고 프로그램을 안전하게 돌립니다.... 그래서 그냥 막 쓰기보다는 제대로 정리하자 라는 취지에서 포스팅을 하려고 합니다. group by의 개념은...말그래도 그룹을 짓는다! 입니다. 그냥 예제로 살펴보는게 이해가 빠르실 겁니다. 먼저 전체 테이블 확인하겠습니다. 여기에 가장 기초적인 단순 컬럼 하나를 그룹 지어보겠습니다.position별로 그룹지어보겠습니다. selectpositionfromprofessorg..

개발/DB 2016.05.20

[oracle]오라클 함수(function) 생성 및 실행

저번에 프로시저에 대하여 포스팅 하였는데요. 오늘은 같은 부류?의 개념인 함수를 포스팅해보겠습니다. 저번 포스팅에서도 말씀 드렸는데 함수는 반환값이 있고! 프로시저는 반환 값이 없습니다. 그럼 기초적인 함수를 먼저 생성해 보겠습니다. CREATE OR REPLACE FUNCTION test_func RETURN VARCHARIS v_test VARCHAR2(100);BEGIN v_test := 'testFunction'; RETURN v_test; END; 진짜 뼈대 밖에 없는 구조 입니다. test_func가 함수 이름 입니다.함수 이름 아래 return varchar는 리턴 타입입니다. 함수 실행 결과입니다.함수 실행문은 selecttest_func()FROM dual;입니다. v_test가 반환할 ..

개발/DB 2016.05.18

[oracle]오라클 정규식 REGEXP_LIKE

REGEXP_LIKE 함수 실습 현재 테이블의 전체 데이터 SELECT * FROM TEST 특정 문자나 숫자를 포함하는 결과 출력하기 SELECT * FROM TEST WHERE regexp_like(text, '[a-z][0-9]'); [a-z], [0-9]는 소문자 전체와 0부터9까지의 숫자를 나타냅니다. SELECT * FROM TEST WHERE regexp_like(text, '[a-z] [0-9]'); [a-z]와[0-9]사이에 공백이 있는 것이 보이시죠? 이렇게 공백도 구분값으로 사용할 수 있습니다. 공백이 여러개일경우찾기 SELECT * FROM TEST WHERE regexp_like(text, '[a-z]?[0-9]');SELECT * FROM TEST WHERE regexp_like..

개발/DB 2016.05.07

[oracle] 정규식 REGEXP_REPLACE 함수

이 함수는 replace 함수를 확장한 개념으로 주어진 문자역에서 특정 패턴을 찾아서 주어진 다른 모양으로 치환하는 함수이다. 문법 REGEXP_REPLACE (source_char, pattern [, replace_string [, position [, occurrence [, match_param[[[) 첫번째 인수 Source_char : 원본데이터, 컬럼명이나, 문자열이 올수 있다. 두번쨰 인수 pattern : 찾고자 하는 패턴을 의미 세번째 인수 replace_string : 변환하고자 하는 형태 네번째 인수 position : 검색 시작 위치를 지정, 아무런 값도 주지 않을 경우 기본값 : 1 다섯 번째 인수 occurrence : 패턴과 일치가 발생하는 횟수를 의미, 0은 모든 값을 대채..

개발/DB 2016.05.04

[oracle]오라클 ibatis iterate conjunction

오랜만에 DB 쿼리 관련포스팅을 해보겠습니다. 다음과 같은 상황이 있습니다. 사용자의 목록을 뿌려주고 있는데요 ~ 여기서 권한 별로 조건을 주어 검색하려고 합니다. 그러나 남, 여 하나하나씩은 usr_gen = #sh_usr_gen# 같은 형식으로 하면 되지만 '일반', '매니저' 두 조건은 어떻게 줘야 할까요????? 먼저 결과 화면을 확인해 보겠습니다. 저는 이와같은 결과를 얻기위해 열심히 검색했습니다. 제가 select 조건을 보시면 usr_auth_cd = #sh_usr_athList[]# sh_usr_athList는 배열변수 입니다. 이렇게 주었는데요 이제 의문이 iterate, open, close, conjunction의 의미를 파악하셔야 합니다. iterate - 해당객체가 종료될때까지 반..

개발/DB 2016.05.01

에러 : Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0

지금 적어두지 않으면 또 다시 이런 일이 발생했을때 구글링...할거 같아서 적어 둡니다. pom.xml에 com.oracle ojdbc14 10.2.0.4.0 를 추가하였는데, 이와같은 에러가 발생하였다. Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 처음에 단순하게 dependency를 추가했을 뿐인데 이와같은 에러가 발생하여 당황하였다.... 그래서 구글링 검색 시작! 이유는 오라클과 메이븐의 라이센스 문제 때문에 메이븐의 저장소에서 받을수 없어 발생한다고 합니다. 해결법은, 태그 안에 mesir-repo http://mesir.googlecode.com/svn/trunk/mavenrepo 를 추가 하고 다시 com.oracle ojdbc14 10.2.0...

개발/java,spring 2016.04.28

[oracle]오라클 최대값의 다른 컬럼 구하기

개발을하다가 필요한 기능이라고 생각되어 적어둘까 합니다.활용도는!! ex) 컬럼 : 학년, 국어점수, 수학점수, 영어점수, 사회점수하는 컬럼이 있습니다. 이중에서 3학년중 국어점수가 가장 높은 사람의 영어점수는??????? 요것이 궁금하다면 어떻게 해야 할까요 바로MAX('영어점수') KEEP(DENSE_RANK FIRST ORDER BY 국어점수 DESC), 조건은 where 학년=3학년 으로 줘야 합니다.를 이용하시면 됩니다. 예제를 통해 알아보겠습니다. 현재 테이블 상황을 알아보겠습니다.select * from test; 위의 데이터를 보시면 test_sno가 1인 값들이 있습니다. 이중에서 testno의 값이 제일 가장 큰 값의 컬럼을 구해보겠습니다. select max(text) keep(den..

개발/DB 2016.04.25

[java]자바 스프링, spring AOP 구현 (xml 방식)

스프링에서 AOP를 테스트 해보겠습니다. 먼저 스프링에서 AOP를 구현하는 방법은 3가지 입니다. 1. xml을 이용한 방법 2. Annotaion을 이용한 방법 3. AOP API를 이용하는 방법(요즘 이용도가 떨어짐) 저는 xml을 이용한 방법과 Annotation을 이용한 방법을 포스팅 해보겠습니다. web.xml 설정 ApplicationContext 빈 설정contextConfigLocation classpath*:spring/*-context.xml 그리고 transaction-context.xml 파일을 생성하였습니다. 라이브러리 설정 그리고 라이브러리들을 사용하기위해 aop, context, tx를 선언하였습니다. tx는 트랜잭션을 이용하기위해 선언하였으므로 굳이 안적으셔도 됩니다! 그리고..

개발/java,spring 2016.04.21

[javascript]자바스크립트 concat, slice, join, for

소스를 보다 모르는것들이 있어 정리 합니다. 먼저, concat(String) - 문자를 하나로 합쳐 줍니다. ex) var str01 ="Hello "; var str02 ="world "; var str03 ="javascript"; str01.concat(str02) str01.concat(str02, str03) //2개 이상의 문자를 합칠경오 결과 : Hello world Hello world javascript slice(index), slice(start, end) - 문자를 해당 위치에서 부터 지정된 위치까지 잘라냅니다. ex) var str04 ="Hello world javascript"; str04.slice(0); str04.slice(6); str04.slice(6,11); str..