[eXERD] 테이블 컬럼명세 빠르게 추출하기

식빵·2025년 12월 8일

Exerd 에서 논리/물리 컬럼명세 뽑아내기

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 로 복사한 후에 Excelctrl + v 를 입력하면 그대로 다 들어간다.

profile
백엔드 개발자로 일하고 있는 식빵(🍞)입니다.

0개의 댓글