2013-07-24

.svn 폴더를 삭제하는 .bat 파일

.svn 폴더를 삭제하여 Subversion 서버와 연결을 끊고 싶은 경우에 아래의 내용을 notepad에서 입력 후, 저장시 확장자를 bat로 만들어서 저장한다.

그 뒤, 해당 파일을 .svn 폴더를 삭제하고자 하는 상위 디렉토리로 이동.
cmd 창에서 생성한 파일명.bat 라고 입력하면,
bat 파일이 존재하는 폴더와 그 하위에 존재하는 .svn 폴더를 모두 삭제해 준다.

.bat 파일의 내용.
==========================================
FOR /R %1 %%1 IN (.svn) DO RMDIR /S /Q "%%1"


위의 내용을 활용하면 .cvs 에도 적용 가능 할 듯 싶다.

2013-07-23

DB2] 문자열을 인자로 받아 테이블 형태로 보여주는 user defined function

db2로 작업하다가 문자열을 parameter로 넣어 주면 table 형태의 데이터로 반환해 주는 사용자 정의 함수를 발견하게 되었다.

해당 소스는 아래 주소를 참조하여 상황에 맞게 수정하여 컴파일 후 사용하면 된다.

ELEMIDX :: 인자로 주어진 문자열 중 ',' 의 위치를 반환.
http://www.ibm.com/developerworks/data/library/techarticle/0303stolze/0303stolze1.html

ELEMENTS :: 인자로 주어진 문자열을 ELEMIDX() 를 사용하여 java의 split(',') 의 기능과 유사한 내용을 테이블 형태로 반환하는 함수.
http://www.ibm.com/developerworks/data/library/techarticle/0303stolze/0303stolze1.html


위 내용의 함수는 join을 이용하여 sql문을 작성할 경우 유용하게 사용할 수 있을 듯 하다.




2013-06-10

Select 에서 여러 행을 하나의 행으로 합쳐서 뽑고자 하는 경우


Select 쿼리를 사용하여 나온 결과가 여러행인 경우 키값이 같은 경우 하나의 행으로 보여주고자 하는 경우, 아래의 쿼리를 사용하여 간단하게 원하는 결과값을 얻을 수가 있다.

아래 쿼리는 DB2에서 재현을 해본 결과 해당 쿼리가 무난하게 돌아가는것을 확인하였다.


실행 쿼리 :
=================================
with tb(docno, seqno, prot, empno) as
(
select '1111' docno, 1 seqno, 1 prot, 'AAAA' empno from dual union all
select '1111' , 1 , 2 , 'BBBB' from dual union all
select '5555' , 3 , 1 , 'KKKK' from dual union all
select '5555' , 3 , 2 , 'MMMM' from dual union all
select '5555' , 3 , 3 , 'PPPP' from dual
)
select docno
, seqno
, listagg(empno,' ') WITHIN GROUP (ORDER BY seqNO, prot) as empno
from tb
group by docno
, seqno
;


실행 결과 :
=================================
docno seqno   empno
1111 1     AAAA BBBB
5555 3     KKKK MMMM PPPP


내용 출처 : http://www.oracleclub.com/article/51669

아래의 링크도 참조하기 바랍니다.
 http://blog.naver.com/PostView.nhn?blogId=jauroy&logNo=50044746370

위에 사용된 listagg() 란 함수에 대해 찾아보다가 발견한 아래의 페이지도 참고 바랍니다.
http://blog.naver.com/PostView.nhn?blogId=joonaha&logNo=70108717698

2013-05-26

Linux] Ubuntu 리눅스 설치 후 X윈도우 해상도 맞지 않아서 해상도 조정이 필요한 경우.

- 리눅스 부팅시 터미널 모드 진입
ctrl - alt - F1 : TTY1 로 진입

- 우분투 설치 완료 후 CUI 환경(터미널 모드)로 부팅시 GUI(X-window) 로 부팅하기 위한 설정 방법.
  1. 설치시 설정한 user 로 로그인.
  2. startx 명령을 했을때 에러 발생시 sudo apt-get install xinit 실행하여 x-widnow를 설치
  3. sudo apt-get update 를 실행하여 업데이터 및 설치
  4. sudo apt-get upgrade 를 실행 및 업그레이드
  5. sudo apt-get install ubuntu-desktop 실행해서 desktop manager 설치
  6. startx 로 x-window 실행.

- 위 과정으로 GUI 모드로 부팅후 화면 주사율(해상도)가 맞지 많아 화면이 제대로 나오지 않으면
아래의 과정으로 해결한다.
ubuntu 13.x 버전을 기준으로 한다.

1. 부팅 후 GUI로그인 화면에서  ctrl - alt - F1 를 눌러  TTY1 로 진입한다.
2. 사용자 계정으로 로그인한다.
3. $sudo service ligthdm stop <== service 종료
4. $sudo Xorg -configure   <== 현재 디렉토리에 신규 xorg.conf.new 파일 생성
5. $sudo mv ~/xorg.conf.new /etc/X11/xorg.conf  <== 신규 생성된 파일로 conf  파일 대체
6. $sudo reboot <== 시스템 재시작

위와 같이 하면 GUI에서도 제대로 사용 가능한다.

2013-05-10

SQL] DB2 date 를 milliseconds 로 변환하기.


DB2
=======
select to_number(sysdate - to_date('1970-01-01','YYYY-MM-DD')) * (24 * 60 * 60 * 1000)
FROM sysibm.sysdummy1 ;


ORACLE
========

select to_number(sysdate - to_date('1970-01-01','YYYY-MM-DD')) * (24 * 60 * 60 * 1000)
FROM dual;