요즘의 개발 추세는 java 기반으로 가고 있지만, 과거 시스템에는 Embedded SQL로 개발되어진 시스템들이 많다.
특히 OS390, AS400 등의 host 시스템에서는 여러 류의 ESQL 프로그램들이 사용되는 것 같다.
ESQL 이 DB와 연동하기 위해서는 테이블에 대한 정의서(DDL)와 개발 언어로 변환된 변수 선언부가 필요해진다.
수많은 테이블에 대해서 테이블의 데이터 유형을 개발 언어에 맞게 변환을 수작업으로 한다면 (단순한 일에) 많은 시간이 소요될 것이다.
그래서 DBMS마다 테이블에 대한 유형을 개발 언어에 맞게 변환해주는 유틸리티를 제공하는 것 같다.
DB2 for LUW에서는 db2dclgn 이라는 유틸리티를 제공한다.
db2dclgn를 수행하여 테이블의 데이터 유형들이 개발언어에 맞는 유형들로 변환된 결과물을 얻을 수 있다.
(내가 정보를 덜 찾아본 것일 수 있겠지만) 호스트 시스템에서 제공하는 유틸리티보다는 효용성이 떨어지는 것 같다.
테이블에 대한 정의서는 출력을 해 주지 않기 때문이다.
범용 DB2 (DB2 for LUW)에서는 db2dclgn과 db2look을 같이 사용해야 개발자들에게 필요한 “선언부 생성물”이 만들어 질 듯 하다.
(명령어 예) db2dclgn -d 디비명 -t 테이블명 -ㅣ COBOL -o 출력파일.cbl -u 접속계정 -p 비밀번호 |
(테스트) db2dclgn -d sample -t employee -b lob -l cobol -n PFIX_ -c -s employee vi employee.cbl 01 EMPLOYEE. |
고객사 지원 시 단순하게 사용했었는데, –n (접두사), –c(접미사) 를 사용하면 개발자들에게 그나마 편할 듯 하다.
접두사는 “테이블의 스키마 명" 지정하고 접미사는 –c 옵션을 주면 컬럼명을 사용하게 된다.
-s 옵션은 “구조체 명"으로 출력파일의 첫 줄을 정의하는 옵션이다.
스키마 이름이 다른 동명 테이블의 dcl를 추출하는 경우, 접두사(-n) 와 구조체 명(-s) 를 통하여 구분을 지을 수 있고,
-c 옵션으로 컬럼명을 “구조체의 필드명(변수명)"으로 사용하여 테이블 컬럼 정보를 참조할 수 있을 것 같다.
개발지원 시, 더 테스트를 했으면 개발자 분들이 조금은 더 편하게 작업을 할 수 있도록 도움을 드렸을텐데, 지금에 와서 시간을 두고 옵션들을 테스트해 보니 어떻게 db2dclgn을 사용해야 할 지가 보인다. (정보센터에서 다양한 예제가 있었으면 도움이 되었을 텐데, 그렇지 못함을 탓해 본다.)
'Note' 카테고리의 다른 글
[이관] admin_cmd 프로시저를 이용한 이관 자동화 (0) | 2014.01.27 |
---|---|
[SQL] 오라클 호환성 VARCHAR2에 대한 고찰 (0) | 2014.01.07 |
[개발] db2jcc 와 db2jcc4 의 차이 (0) | 2013.11.28 |
[개발] Windows에서 ESQL 컴파일 및 Connect By Siblings (0) | 2013.11.28 |
[SQL] 오라클 호환성에 따른 문자열 길이 변화 (0) | 2013.10.31 |