개발 247

[oracle]오라클 select해서 insert 하기

프로젝트를 진행하면서 문제가 생겼습니다. 문제는! A라는 테이블의 데이터를 B라는 테이블에 inster 시켜할 경우가 생겼다. 간단히 말해서 select해서 다른테이블에 insert 하겠다는 의미 입니다. 처음에는 이런기능도있어??라고 생각했는데.... 간단하더군요...ㅋㅋㅋㅋ 바로 예제를 통해 알아보겠습니다. ㅋㅋㅋ 먼저 두 테이블의 컬럼이 모두 동일할때! insert into A select * from B 라고 하면 데이터가 전부 A로 들어가게 됩니다. 하지만 이런경우가 많이는 없을것 같고... 저 또한 컬럼명이 달랐습니다. 이번에는 두 테이블의 컬럼이 다를때! 입니다. 먼저 테이블 데이터를 살펴보겠습니다.SELECT*FROMTEST; 이번엔 학생테이블을 조회 해보겠습니다.SELECT*FROMSTU..

개발/DB 2016.06.01

[oracle] 프로시저(procedure)

안녕하세요. 오늘은 오라클 프로시져 생성 및 실행을 포스팅 해보겠습니다. 프로시저는 로직을 수행만 할 수 있습니다. 반환값이 없습니다! 사실...프로시저 만들때 그냥 가져다가 알맹이만 바꿨지 제대로 해본적이 없어서 혼자 책보면서 만들어 봤습니다. 책을 보면서해도... 헷갈리고 만들어 놨던 프로시저를 변경 할려고해도 굉장히 헷갈리네요 먼저 가장 기초적인 프로시저를 만들고 콘솔로 출력해보겠습니다. create or replace procedure testdb.testprocedure is begin dbms_output.put_line('테스트 프로시져 입니다.'); end testprocedure; 생성하고 실행을 합니다. 실행 방법은 exec testprocedure; 입니다. exec 명령어를 사용하시..

개발/DB 2016.05.30

[java] java Map 같은값이 들어갈경우

정말 어처구니 없는 일이 있었다... 사실 제가 너무 무지해서 발생했던 일입니다. 그래서 다시는 잊지 않기위해 포스팅 합니다. Map에 중복된 값이 계속 들어간다고 생각했던....그래서 멘붕에 빠진 날이 있었습니다. 상황은 이렇습니다. Map 객체 생성후 for문을 돌려 값을 채울려고 했습니다. Map param = new HashMap(); List testList = new ArrayList(); for(int i=0; i

개발/java,spring 2016.05.28

[java]자바 날짜 계산(SimpleDateFormat, date, format)

안녕하세요.오늘은 자바 날짜 계산 하는 법에 대해서 포스팅하겠습니다. 사실...플젝을 진행하면서 날짜를 계산해야 하는데...은근히 어렵더라고요...?예전에는 그냥 인터넷에 찾아서 붙여넣기 하면서 했었는데...ㅋㅋㅋ 그래서 이왕 하는김에 포스팅까지 하려고 합니다. 저의 진행 방법은!자바의 String 형을 날짜로 변환하여오늘의 날짜와의 차이를 구하려고 합니다. 소스 보시기전에SimpleDateFormat, Date 형에 대해서 알아보시면 좋을 것 같습니다.소스를 보면서 이해가 가실 테지만요. 그럼 소스 확인해 보겠습니다.---------------------String testDate = "20160421"; SimpleDateFormat formatter01 = new SimpleDateFormat("y..

개발/java,spring 2016.05.26

[oracle]오라클 grouping, grouping_id 설명 및 예제

안녕하세요. 오라클의 group by를 공부하면서 grouping이 나와서... 포스팅하게 되었습니다. 아직 제가 유용하게 써본적은 없지만.... 굳이 말하자면 소계, 합계 구할때 정도??? 하지만 알아두면 좋은 개념이라고 생각되어 정리해 두려고 합니다. 먼저 기본적인 개념 입니다. Grouping(컬럼명) - GROUPING 함수는 그룹쿼리에서 사용하는 함수로 파라미터의 평가값이 NULL 이면 1, NULL 이 아닌 경우에는 0을 반환합니다. ※ GROUPING 함수에서 사용될 컬럼은 반드시 GROUP BY 절에서 명시 되어야 합니다. 즉, 해당 Row가 RollUp에 의서인지 Cube에 의해서 산출된 값인지 구별 할 수가 있습니다. ※ 간단히 말하면 rollup은 함계 를 구하는데 쓰고 음... cu..

개발/DB 2016.05.23

[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