문자열 마지막에 콤마 제거 방법 문자열 마지막에 콤마가 오는경우 쉽게 제거하는 방법이다. SELECT rtrim(str,',') str FROM ( SELECT '가나다,마바사,아자차,' AS str FROM dual ) 출처 - http://metalzang.tistory.com/186 데이터베이스/오라클(Oracle) 2017.02.09
프로시져(procedure) 실행 시 out 변수가 있을경우 실행 방법 프로시져(procedure) 실행 시 반환값으로 사용 될 out 변수가 있을경우 실행하는 방법이다.OUT 변수를 받을 임시변수를 선언해 놓고 받으면 된다. --DBMS OUTPUT 출력을 위함 SET SERVEROUTPUT ON; DECLARE V_MSG VARCHAR2(200); BEGIN SP_TEST('TEST',V_MSG); DBMS_OUTPUT.PUT_LINE('V_MSG------->' || V_MSG); END; 데이터베이스/오라클(Oracle) 2016.12.20
[오라클] 파일명 및 확장자명 추출 쿼리 SELECT REPLACE(ATTACH_PATH,SUBSTR(ATTACH_PATH,INSTR(ATTACH_PATH,'.',-1,1),LENGTH(ATTACH_PATH)),'') AS 파일명 , SUBSTR(ATTACH_PATH,INSTR(ATTACH_PATH,'.', -1,1),LENGTH(ATTACH_PATH)) AS 확장자 FROM TB_BOARD_ATTACH; 데이터베이스/오라클(Oracle) 2016.06.24
[iBatis] batch 사용방법 및 사용시 유의사항 iBatis 에서 반복적인 대량의 insert/update시 속도 향상을 위해 batch를 사용하여 insert/update를 한다. iBatis에서는 Java에 있는 batch 방법만을 사용할 수 있다. 하지만 수천 수만건의 데이터를 한번에 executeBatch() 해준다면 메모리를 많이 사용하게 되어 메모리 부족현상이 발생되어 에러가 발생한다.(배치에 등록된 대량의 레코드를 한번에 executeBatch 하게되니 Exception 발생) 그래서 1000건 혹은 10000건 단위를 한 묶음으로 배치 처리해주는 것이 효율적이다. public void updateBatchTest() throws Exception { long start = System.currentTimeMillis(); Map para.. 데이터베이스/아이바티스(iBatis) 2016.05.19
[iBatis] 오라클 CLOB 형식의 데이터를 ResultMap 으로 처리하는 방법 iBatis 에서 오라클의 CLOB 형식의 데이를 String 으로 받아 올 경우 ResultMap 처리 방법이다. 데이터베이스/아이바티스(iBatis) 2016.05.19
[MyBatis] Select Key 에서 다중 필드 뽑아내기 MyBatis 3.2.6 버전부터 multiple fields in a select key 가 지원되어 select key 에서 다중으로 값을 뽑아낼 수 있다. SELECT 'key1' as userId, 'key2' as userName FROM DUAL INSERT INTO USERS ( USER_ID , NAME , PASSWORD , AGE ) VALUES ( #{userId} , #{userName} , #{password} , #{age} ) 데이터베이스/마이바티스(MyBatis) 2016.05.17
[iBatis] iBatis 에서 오라클 프로시져 호출 방법 sql map xml에서의 다음과 같이 Oracle procedure를 호출하는 방식으로 를 작성하시면 된다. { CALL sp_procedure (#empNo#, #deptNo#) } DAO에서의 호출은 select query를 호출하는 방식으로 호출하면 된다. 데이터베이스/아이바티스(iBatis) 2016.05.17
[Oracle] REGEXP_REPLACE 다중(여러개) Replace(치환) 하는 방법 출처 : http://gent.tistory.com/82 --치환할 문자를 |로 구분하여 입력 SELECT REGEXP_REPLACE('Stay Hungry, Stay Foolish. - Steve Jobs', 'Stay|Foolish|Steve', '') FROM DUAL --결과: Hungry, . - Jobs ; --문자를 제거만 할꺼면 3번재 파라미터는 생략가능 SELECT REGEXP_REPLACE('Stay Hungry, Stay Foolish. - Steve Jobs', 'Stay|Foolish|Steve') FROM DUAL --결과: Hungry, . - Jobs ; SELECT REGEXP_REPLACE('Stay Hungry, Stay Foolish. - Steve Jobs 2005'.. 데이터베이스/오라클(Oracle) 2016.05.11
[Oracle] job 관리 방법(job scheduler) 1. JOB 등록 DBMS_JOB.SUBMIT(JOB_NO, WHAT, NEXT_DATE, INTERVAL); 예) declare job_no number;begin dbms_job.submit(job_no, 'SP_UPDATE_DPT();', sysdate, 'sysdate + 1');end; 참고 : 실행주기 계산 'sysdate + 7' : 일주일에 1회 실행 'sysdate + 1' : 하루에 1회 실행 'next_day(sysdate, ''TUESDAY'')' : 매주 화요일에 실행 'null' : 1회 실행 'sysdate + 1/24' : 1시간에 1회 실행 'sysdate + 1/24/60' : 1분에 1회 실행 'trunc(sysdate+1) + 2/24' : 다음날 2시에 1회 실행'T.. 데이터베이스/오라클(Oracle) 2016.05.11
[Oracle] 시퀀스 초기화 방법 시퀀스(Sequence)를 초기화 하는 프로시져다. CREATE OR REPLACE PROCEDURE reset_seq( p_seq_name IN VARCHAR2 ) IS l_val NUMBER; BEGIN EXECUTE immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val; EXECUTE immediate 'alter sequence ' || p_seq_name || ' increment by -' || l_val || ' minvalue 0'; EXECUTE immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val; EXECUTE immediate 'alter seq.. 데이터베이스/오라클(Oracle) 2016.04.21