2014-01-13

DB2] DB2에서 특정 컬럼명을 가지고 있는 테이블 리스트 찾기.

IBM DB2 에서 특정 컬럼명을 가진 테이블 리스트를 구하는 방법.

1.
select * 
from syscat.columns 
where colname = '확인할컬럼명' -- 컬럼명은 대문자
;

2.
select * 
from syscat.columns 
where remarks like 'comment한 이름' -- 컬럼명은 대문자
;

1. 은 컬럼명을 알 때 사용 가능하고, 2. 는 테이블 생성시 remarks 에 코멘트를 달아 놓은 경우에 해당 작업으로 확인이 가능하다.

** 해당 스키마를 알면 해당 스키마에서만 찾고자 하는 컬럼명을 사용하는 테이블을 조회가 가능하다.

2013-12-18

Mysql/Mariadb] MariaDB 5.5.34 zip 파일 설치하기.

mysql 과 쌍둥이 Database 인 MariaDB 설치하기.

1. mariadb download
   https://downloads.mariadb.org 에 접속해서 해당하는 버전을 다운로드(zip 파일)
   ** 현재 안정화 버전은 5.5.34(mysql 5.5에 대응) , 베타버전은 10.6 beta(mysql 5.6에 대응)를 테스트 중.
       
2. download 된 zip 파일을 압축해제 한다.

3. 압축이 풀린 디렉토리를 설치하고자 하는 곳으로 옮긴다.
    ex) c:\maraidb-5.5.34

4. my-innodb-heavy-4G.ini 을 my.ini로 복사

5. my.ini 파일 편집

[client]

default-character-set = utf8

[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci



# innodb

innodb_data_home_dir = "c:/maraidb-5.5.34/data/"


[mysqldump]
default-character-set = utf8




[mysql]
default-character-set = utf8

5. mysql 실행
c:/maraidb-5.5.34/bin/mysqld


**  mysql을 윈도우 서비스로 등록

mysqld --install 서비스명.


6. mysql 에 root user로 접속
c:/maraidb-5.5.34/bin>mysql -u root -p
Enter password:   <== 엔터키 입력하고 넘어간다

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql <== db 변경
Database changed

7. mysql DB의 user 테이블의 내용 확인
MariaDB [mysql]> desc user; <== user 테이블의 구조 확인

8. root user의 비밀번호 변경 및 적용
MariaDB [mysql]> update user set password=password('변경할비밀번호') where user='root';  <== 비번 변경
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

MariaDB [mysql]> flush privileges; <== 적용
Query OK, 0 rows affected (0.00 sec)

2013-12-03

javascript/SmartClient] RichTextEditor 사용하기.

RichTextEditor를 사용하기 위해서는 아래와 같은 선언문을 포함한 뒤.

<SCRIPT SRC=isomorphic/system/modules/ISC_RichTextEditor.js></SCRIPT><SCRIPT>isc._lastModule='RichTextEditor';</SCRIPT>

------------

isc.VLayout.create({
   membersMargin:5,
   members:[
       isc.RichTextEditor.create({
           autoDraw:false,
           ID:"contentEditor",
           height:155,
         
           overflow:"hidden",
           canDragResize:true, showEdges:true,

            // Standard control group options include
            // "fontControls", "formatControls", "styleControls" and "colorControls"
            controlGroups:["fontControls", "formatControls", "styleControls", "colorControls"],
            value:''
       })
       ]
});

와 같이 선언을 하여 사용한다.

(참조 URL : http://www.smartclient.com/docs/9.0/a/system/reference/SmartClient_Explorer.html#RichTextEditor
)

위의 RichTextEditor 를 DynamicForm 에 붙여서 사용하기 위해서는
DynamicForm에서 사용하고자 하는 field의 타입을 'canvas'로 선언해서 사용하면 된다.

추가적으로 해당 RichTextEditor 에서 사용하고자 하는 font를 더 추가하고자 하는 경우,

isomorphic/system/modules/ISC_RichTextEditor.js 파일의 82 line부근의 fontControls이 정의된 곳에 추가하고자 하는 Font 를 추가하면 된다.
추가하는 형식은 "font":"font 라벨(콤보에 표시되는 값)" 으로 "," 로 구분하여 추가하면 된다.

2013-10-27

재부도 전경


주말에 간 제부도전경. (파노라마 사진).
시원하고 좋은 날...
좋았다..

2013-10-25

DB2] DB2 에서 Assignment of a NULL value to a NOT NULL column 의 오류 발생시

DB2 로 프로그램 개발시 ,
Assignment of a NULL value to a NOT NULL column 메시지와 함께
"TBSPACEID=XX, TABLEID=XX, COLNO=XX" 라는 오류 메시지를 받게 되는 경우 아래의 방법으로 확인가능.

1.
select * from syscat.tables 
where tableid = xx 
;

로 해당 테이블 명을 확인.

2.
select * 
from syscat.columns 
where tabname = '확인한 테이블명'
and colno = xx;

로 해당 컬럼을 확인하여 조치를 취할 수 있다. 

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명>