2013-09-25

excel export 시에 chr(10)으로 line break 삽입시 cell wrap이 먹게 하는 방법.

excel export 시에 chr(10)으로 line break 삽입시 다운로드 된 excel 파일을 열면 라인이 안 바뀌어 보이는 현상이 발생할 수 있다.

그럴때 cell 내에서 라인이 바뀌어 보이게 처리하기 위해서는 아래의 방법으로 처리하면 된다.

HSSFWorkbook wb = new HSSFWorkbook();

CellStyle cs = wb.createCellStyle();
cs.setWrapText( true );

cell.setCellStyle( cs );

즉, cellStyle의 wrapText 속성을 true로 설정하여 대입하면 된다는 얘기.

2013-09-05

DB2] Alter table ... drop column

보통 DB에서 alter table  작업은 다음과 같이 한다.

alter table table_name 
drop column column 
;

위의 문장은 table_name 의 column 컬럼을 제거하겠다는 명령이다. 

하지만 db2에서 위 명령을 실행한 후, 

select * from table_name; 

명령을 실행하면 

SQL0668N Operation not allowed for reason code "7"

과 같은 오류를 발생시키면서 select 쿼리를 실행하지 못한다. 


이런 경우, 

reorg table table_name ;

을 실행하면 위의 오류가 해결 된다.

***
column 추가
==>
    alter table table_name
        add column column_name data_type ;


column 명 변경
==>
    alter table table_name
        alter column column_name_org
              set default 'modified_column_name' ;

pk 삭제
==>
    alter table table_name
        drop primary key

pk 추가
==>
    alter table table_name
        add primary key field_name

column 의 data type 변경
==>
   alter table table_name
         alter column column_name
             set data type 변경할 데이터 타입.


=========================================

pk 변경하기 위한 작업절차


-- pk 에 추가할 컬럼 생성. (pk 이기 때문에 not null 로 생성해야 됨)
alter table <테이블명>
    add column <컬럼명> <데이터타입> not null default 1
;

-- 테이블 데이터 확인.
select *
from <테이블명>
;

commit;

-- reorg 작업.
reorg table <테이블명> ;

-- pk 제거
ALTER TABLE <테이블명>
  drop PRIMARY KEY
;

-- pk 재생성
ALTER TABLE <테이블명>
  ADD PRIMARY KEY
    (pk 컬럼1, pk 컬럼2, ... , pk 컬럼N  )
;



CREATE SEQUENCE <Sequence명>
  AS INTEGER
  START WITH 1
  CACHE 20
  ORDER
;


---- 
sequence 삭제
drop SEQUENCE <Sequence명>

2013-08-08

javascript/eclipse] eclipse 에서 'Requesting JavaScript AST from selection' has encountered a problem' 오류 발생시 해결방법.

eclipse로 작업중에 'Requesting JavaScript AST from selectionhas encountered a problem.' 발생하면 다음과 같이 하면 문제가 해결 될 것이다.
(Eclipse JSDT 의 버그가 원인)

- eclipse 메뉴 :: Window -> Preference -> Javascript -> Editor -> Mark Occurences -> Mark occurences of the selected element in the current file 항목의 체크 해지

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