eXERD 로 기껏 논리/물리 ERD 내용을 다 작성했는데,
정작 이거를 Excel 같은 보고서에 넣기 위해서는 exerd 에서 정보를 추출해야 합니다.
이때 편하게 작업할 수 있는 방법을 공유합니다.
1. eXERD 에서 상단 메뉴에서 [eXERD > 내보내기 > 템플릿] 선택
2. 내보내기 팝업창이 나오면 먼저 상단 선택바 에서 CSV 콤마구분(기본) 을 선택
3. 그 상태에서 선택란 바로 오른쪽에 있는 템플릿 복사 아이콘 버튼 클릭
4. 복사된 템플릿을 아래와 같이 수정
@begin-doc
엔터티명,테이블명,컬럼순서,속성명,컬럼명,도메인,데이터타입,키,NotNull여부,기본값,주석
${loop:schema}
@end-doc
@begin-schema
${loop:table}
@end-schema
@begin-table
${loop:column}
@end-table
@begin-column
"${parent.logicalName}","${parent.physicalName}","${columnOrder}","${logicalName}","${physicalName}","${domain}","${dataType}","${pfk}","${notNullYN}","${defaultValue}","${comment}"
@end-column
5. "내보내기 -> 클립보드" 를 선택하고, 다음 버튼/완료 버튼 클릭
6. 메모장 켜서 일단 클립보드로 복사한 내용을 붙여넣고, 파일 저장할 때 확장자를 csv 로 변경
7. dbeaver 를 실행시키고 아래와 같이 테이블 하나를 생성
CREATE TABLE exerd_column (
엔터티명 varchar(50) NULL,
테이블명 varchar(50) NULL,
컬럼순서 int4 NULL,
속성명 varchar(50) NULL,
컬럼명 varchar(50) NULL,
도메인 varchar(50) NULL,
데이터타입 varchar(50) NULL,
키 varchar(50) NULL,
"NotNull여부" varchar(50) NULL,
기본값 varchar(50) NULL,
주석 varchar(1000) NULL
)
8. 해당 파일을 dbeaver 로 import 하기
==> dbeaver 프로그램 상에서 생성된 테이블에 마우스 오른쪽 클릭
==> "데이터 가져오기" 클릭
==> "csv" 선택 후 다음 버튼 클릭
==> [input file] 이라는 버튼 클릭하고, 자신이 앞서 exerd 에서 추출한 csv 파일을 선택
참고로 importer setting 에서
=> 인코딩: utf-8
=> 컬럼 구분자: ,
=> 헤더 위치: top
=> Quote char: "
로 선택이 됐는지 꼭 확인하길 바란다.
다 됐으면 다음 버튼 클릭.
==> Target container 를 정확히 지정한다.
Target container 란 앞서 생성한 exerd_column 테이블이 위치한 db 와 schema 명칭을 의미한다.
세팅이 됐으면 다음을 클릭한다.
==> 마지막으로 [진행] 버튼을 클릭하면 끝이다.
9. import 가 완료된 후에 아래 쿼리를 수행한다.
SELECT
ROW_NUMBER() OVER (ORDER BY "테이블명", "컬럼순서") AS "No"
, "엔터티명"
, UPPER("테이블명") AS "테이블명"
, UPPER("컬럼명") AS "컬럼명"
, "속성명" AS 한글명
, "도메인"
, (REGEXP_MATCH(TRIM("데이터타입"), '^([^(]+)'))[1] AS "데이터타입"
, REGEXP_REPLACE((REGEXP_MATCH(TRIM("데이터타입"), '\((.+)\)'))[1], ',0$', '') AS "길이" -- NUMERIC(22,0) ==> 22
, CASE WHEN "NotNull여부" = 'N' THEN 'Y' END "NULL"
, CASE WHEN "키" = 'PK' OR "키" = 'PFK' THEN 'Y' END "PK"
, CASE WHEN "키" = 'FK' OR "키" = 'PFK' THEN 'Y' END "FK"
, "기본값"
, CASE WHEN "주석" IS NOT NULL OR TRIM("주석") = '' THEN "속성명" ELSE "주석" END AS "컬럼설명"
FROM exerd_column
ORDER BY 테이블명, 컬럼순서;
10. 출력된 내용을 이제 Excel 에 넣으면 된다.
Excel 로 옮기는 방법은 Dbeaver 를 사용하면 편하다.
dbeaver 에서 앞서 실행한 쿼리의 결과물이 표출된 화면에 마우스 클릭을 한번하고,
ctrl+a 로 전체 선택하고, ctrl + c 로 복사한 후에 Excel 에 ctrl + v 를 입력하면 그대로 다 들어간다.