728x90

파워포인트 파일 합치기

1. 대상디렉토리 선택하여 특정 디렉토리 선택하면 해당 디렉토리 내의 모든 파워포인트 파일 목록 생성

2. 파워포인트 파일 목록에서 대상 삭제 등 정리

3. 파워포인트 합치기 선택하여 파일 합친후 대상 디렉토리에 다른이름으로 저장

 

작성자 : 유영락, u0rak@네이버, 정보시스템감리사

프로그램 문의는 받지 않습니다만 발전적인 의견은 환영합니다.

프로그램은 자유롭게 사용 가능합니다.

도움이 되었다면 후원은 감사히 받겠습니다(SC은행, 22420285094)

대상 문서가 열려 있거나, 오픈시 다이얼로그가 실행되는 경우에는 제대로 실행되지 않습니다.

 

u0rak_파워포인트파일하나로합치기211103.xlsm
0.02MB

728x90
728x90

문서들을 병합할 빈 한글 문서를 하나 만든다.

 

 

 

 

메뉴 중 [도구] - [스크립트 매크로] - [매크로 실행] 을 누른다.

 

이미 등록된 매크로 중 사용하지 않는 매크로를 선택 후 왼쪽 아래 펜 모양 버튼을 눌러 이름을 바꿔준다. 여기서는 [중국어2성] 을 편집해 보겠다.

 

(마땅히 사용하지 않는 매크로가 없다면 [매크로 실행] 대신 일단 [매크로 정의]를 통해 빈 곳에 아무 매크로나 만들어 등록한 후 다시 [매크로 실행]으로 들어오면 된다.)

 

 

 

 

원하는 이름으로 변경 후 [설정] 버튼을 누른다.

 

 

 

 

이제 이름을 바꾼 매크로를 선택 후, 오른쪽에 [코드 편집]버튼을 누른다.

 

 

 

 

오른쪽에 [스크립트]라고 무언가 복잡하게 나타나지만 긴장하지 말자.

 

처음 등장하는 중괄호 { 와 마지막 중괄호 } 만 남기고 사이의 부분은 모두 삭제할 것이다. (블럭으로 지정된 부분)

 

 

 

합칠 문서의 역순으로 정의

 

첨부된 엑셀 파일을 실행하여 해당 매크로 복사

 

u0rak_HWP합치기매크로생성_221011.xlsm
0.58MB

 

HAction.GetDefault("InsertFile", HParameterSet.HInsertFile.HSet); with (HParameterSet.HInsertFile) { FileName = "C:\\Temp\\003.hwp"; KeepSection = 1; KeepCharshape = 0; KeepParashape = 0; KeepStyle = 0; } HAction.Execute("InsertFile", HParameterSet.HInsertFile.HSet);
HAction.GetDefault("InsertFile", HParameterSet.HInsertFile.HSet); with (HParameterSet.HInsertFile) { FileName = "C:\\Temp\\002.hwp"; KeepSection = 1; KeepCharshape = 0; KeepParashape = 0; KeepStyle = 0; } HAction.Execute("InsertFile", HParameterSet.HInsertFile.HSet);
HAction.GetDefault("InsertFile", HParameterSet.HInsertFile.HSet); with (HParameterSet.HInsertFile) { FileName = "C:\\Temp\\001.hwp"; KeepSection = 1; KeepCharshape = 0; KeepParashape = 0; KeepStyle = 0; } HAction.Execute("InsertFile", HParameterSet.HInsertFile.HSet);

 

맨 위에 [중국어2성] 이라고 적힌 부분은 아까 지정한 이름과 동일하게 바꾼 후 위에 있는 [매크로 적용] 단추를 눌러 주자. 매크로를 저장하는 역할을 한다.

 

 

 

 

이제 중괄호 사이에 아까 엑셀에서 복사한 명령들을 붙여넣어 주자. 

 

최종 모양은 다음과 같다.

 

 

 

 

완성이다. 위에 있는 [매크로 적용]과 [매크로 실행] 버튼을 차례로 누르면 001.hwp 부터 005.hwp 까지의 문서가 자동으로 병합된다.

 

 

 

 

물론 문서 자체의 크기가 크거나 병합해야 할 문서가 많다면 시간이 꽤 걸릴 수 있다. 혹시 한글이 응답이 없더라도 건드리지 말고 잠시 기다려 주자.

 

출처 : https://lightblog.tistory.com/235

728x90
728x90
  1. 삽입 탭을 선택합니다.
  2. 개체 를 선택하여 드롭다운 메뉴에서 파일의 텍스트 를 선택합니다.
  3. 현재 문서에 병합할 파일을 선택합니다. Ctrl 을 누른 상태에서 두 개 이상의 문서를 선택합니다.
  4.  참고
  5. 문서는 파일 목록에 표시되는 순서로 병합됩니다. 다른 순서를 사용하려면 각 파일을 원하는 순서로 개별적으로 선택하고 삽입합니다.
728x90
728x90

노트북 제조사 별 바이오스 & 부트 메뉴 단축키

 

제조사
바이오스
부트 메뉴
삼성전자
F2
ESC, F10
LG전자
F2
F10
APPLE
X
option
ASUS
F2
ESC, F8
기가바이트
F2, DEL
F12
MSI
DEL
F11
HP
F10, ESC
F9, ESC
DELL
F2
F12
레노버
F1, F2, Fn+F2
F8, F10, F12, Fn+F11, Fn+F12
ACER
F2
F12
TG삼보
F2
F12
한성컴퓨터
F2
F7
Razer
F1, DEL
F12
microsoft
볼륨업 유지
X
SONY
F2, Fn+F2
F10, F11
주연테크
F2 유지
F11 이용
화웨이
볼륨 업 + 전원, F2 유지
F12 유지
포유디지탈
X
F7
JDL Tech
F2
F12
디클
ESC
X
베이직스
DEL
X
이그닉
ESC
X
JUMPER
ESC
X
MPGIO
ESC
X
샤오미
F2
F12
이마트(TG삼보)
F2
F12

 

메인보드 제조사 별 바이오스 & 부트 메뉴 단축키

 

제조사
바이오스
부트 메뉴
ASUS
DEL
F8
MSI
DEL
F11
ASRock
F2
F11
GIGABYTE
DEL
F12
BIOSTAR
DEL
F7, F9
EVGA
DEL
F7
COLORFUL
DEL
X
ECS
DEL
X
인텔
F2
F10
FOXCONN
DEL
ESC, F7

출처: http://nanopc.kr/?page_id=7&vid=58

728x90
728x90

테이블 컬럼 정의서 만드는데 도움주는 파일

 

1. 표준단어정의, 2. 표준도메인정의, 3. 표준용어정의, 4. 테이블컬럼정의 순으로 작성
주황색 타이틀 필수 작성, 노란색 타이틀 추가 작성, 회색 타이틀은 자동 작성 

표준용어는 표준단어 및 표준도메인 조합으로 생성, 테이블컬럼정의는 표준 용어 조합으로 생성

 

1. 표준 단어 정의 - 한글명, 영문명 필수

2. 표준 도메인 정의 - 도메인명, 자료형, 자료크기 필수

3. 표준 용어 정의 - 용어 한글명, 도메인명 필수

용어는 표준 단어의 한글명 기준으로 자동 생성, 오류 발생시 1. 표준 단어 등록 또는 용어 직접 입력 가능

도메인명은 표준 도메인의 도메인명을 통하여 자동 생성, 오류 발생시 2. 표준 도메인명 등록

4. 테이블 컬럼 정의 - 컬럼 한글명 필수 입력

영문명, 자료형은 표준 용어 정의 기준으로 자동 생성, 오류 발생시 3. 표준 용어 등록

 

작성자 : 유영락, u0rak@네이버, 정보시스템감리사
프로그램 문의는 받지 않습니다만 발전적인 의견은 환영합니다.
프로그램은 자유롭게 사용 가능합니다. 프로그램에 오류가 있을수 있습니다.
대상 문서가 열려 있거나, 오픈시 다이얼로그가 실행되는 경우에는 제대로 실행되지 않습니다.
업데이트는 https://blog.naver.com/u0rak, https://u0rak.tistory.com/ 를 통해 관리 예정입니다.
도움이 되었다면 후원은 감사히 받겠습니다(SC은행, 22420285094)

 

u0rak_테이블정의서_220719.xlsm
0.53MB




 

728x90
728x90

기능점수당 단가 553,114원 ( SW사업 대가산정 가이드 (2021년 개정판) 기준 )

 

※ 기능점수(FP) 방식에 의한 SW개발비 산정 시 기능점수 단가에 ‘제경비’ 및 ‘기술료’에 상응하는 항목이 반영되어 있어 별도로 산정하지 않는다.

 

단위프로세스 식별 권고 사례

데이터적재  데이터적재는 EI로 산정하는 것이 타당함
발송  단순 발송은 EQ로 산정하는 것이 타당함 
(만약 단순발송이 아닌 경우는 EO가 적합) 
그래프  그래프는 일반적으로 EO로 산정하는 것이 타당함 
다운로드  다운로드는 EQ로 산정하는 것이 타당함 
로그인  암호검증 후 로그인은 EQ로 산정하는 것이 타당함 
사용자인증  사용자인증은 EQ로 산정하는 것이 타당함 
통계  통계기능은 EO로 산정하는 것이 타당함 
전송  전송기능은 EQ 또는 EO로 산정하는 것이 타당함 
코드  코드데이터는 기능에서 제외하는 것이 타당함 
임시  임시파일은 기능에서 제외하는 것이 타당함 
이력  이력정보는 기능에서 제외하는 것이 타당함 
첨부  첨부는 단위프로세스를 완료하지 못하므로 제외하는 것이 타당함 
엑셀저장  엑셀로 저장하는 단순기능은 산정 제외 
서식다운  관련 서식다운로드 기능은 산정에서 제외 
로그  로그 데이터는 산정에서 제외  
상세  단독으로 단위프로세스를 완료하지 못함 
변환   단순 파일의 형태변환 (HWP → PDF)은 산정에서 제외 
설정   설정은 ILF를 변경시키므로 EI로 산정하는 것이 타당함 
업로드   파일 업로드 기능은 EI로 산정하는 것이 타당함

728x90
728x90

파워포인트 색인 페이지 만드는데 도움이 되기 위한 도구

파워포인트에서 매 슬라이드마다 특정 갯수에 해당하는 텍스트 추출

파워포인트에서 매 슬라이드마다 특정 폰트(폰트명, 크기)에 대당하는 텍스트 추출

 

작성자 : 유영락, u0rak@네이버, 정보시스템감리사
프로그램 문의는 받지 않습니다만 발전적인 의견은 환영합니다.
프로그램은 자유롭게 사용 가능합니다. 프로그램에 오류가 있을수 있습니다.
대상 문서가 열려 있거나, 오픈시 다이얼로그가 실행되는 경우에는 제대로 실행되지 않습니다.
업데이트는 https://blog.naver.com/u0rak, https://u0rak.tistory.com/ 를 통해 관리 예정입니다.
도움이 되었다면 후원은 감사히 받겠습니다(SC은행, 22420285094)

u0rak_파워포인트슬라이드일정갯수텍스트추출220316.xlsm
0.03MB
u0rak_파워포인트슬라이드특정폰트텍스트추출220419.xlsm
0.03MB

728x90
728x90

󰊱 [오라클] SQL 예시

테이블 정의서 추출 : ‘OWNER을 수정하여 수행

테이블 정의서 추출 SQL
SELECT S1.OWNER --OWNER
, S1.TABLE_NAME --영문테이블명
, S2.COMMENTS --한글테이블명
, S1.NUM_ROWS --테이블볼륨
, S3.CREATED --등록일자
, S3.LAST_DDL_TIME --수정일자
FROM ALL_TABLES S1
, ALL_TAB_COMMENTS S2
, ALL_OBJECTS S3
WHERE 1=1
AND S1.OWNER = S2.OWNER
AND S1.TABLE_NAME = S2.TABLE_NAME
AND S1.OWNER = S3.OWNER
AND S1.TABLE_NAME = S3.OBJECT_NAME
AND S2.TABLE_TYPE = 'TABLE'
AND S1.TABLE_NAME NOT LIKE '%TEMP%'
AND S1.OWNER NOT IN ('SYS')
AND S1.TABLESPACE_NAME NOT IN ('SYSTEM' , 'SYSAUX')
AND S1.OWNER = 'OWNER' -- Owner명 입력
ORDER BY S1.OWNER, S1.TABLE_NAME

컬럼 정의서 추출 : ‘OWNER을 수정하여 수행

컬럼 정의서 추출 SQL
--오라클의 DB명은 직접 입력해야함


SELECT A.OWNER AS OWNER,
A.TABLE_NAME AS 테이블명_1,
A.COLUMN_NAME AS 컬럼영문명_2,
A.COL_CMT AS 한글컬럼명_3,
A.NULLABLE AS NULL여부_6,
A.DATA_TYPE AS 데이터타입_7,
A.LEN 데이터길이_8,
B.POS AS PK정보_9,
C.FK_POS FK정보_10,
A.DATA_DEFAULT AS 제약조건_11,
A.COLUMN_ID AS 컬럼순서
FROM
(SELECT S1.OWNER ,
S1.TABLE_NAME,
S3.COMMENTS AS TAB_CMT,
S1.COLUMN_NAME,
S2.COMMENTS AS COL_CMT,
S1.DATA_TYPE,
CASE WHEN S1.DATA_PRECISION IS NOT NULL THEN DATA_PRECISION||','||DATA_SCALE
ELSE TO_CHAR(S1.DATA_LENGTH)
END AS LEN,
NULLABLE,
COLUMN_ID,
DATA_DEFAULT
FROM ALL_TAB_COLUMNS S1,
ALL_COL_COMMENTS S2,
ALL_TAB_COMMENTS S3
WHERE S1.OWNER = S2.OWNER
AND S1.TABLE_NAME = S2.TABLE_NAME
AND S1.COLUMN_NAME = S2.COLUMN_NAME
AND S1.OWNER = S3.OWNER
AND S1.TABLE_NAME = S3.TABLE_NAME ) A,
(SELECT T1.OWNER, T1.TABLE_NAME, T2.COLUMN_NAME, 'PK'||POSITION AS POS
FROM (SELECT OWNER, TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'P' )T1,
(SELECT OWNER, TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, POSITION
FROM USER_CONS_COLUMNS ) T2
WHERE T1.OWNER = T2.OWNER
AND T1.TABLE_NAME = T2.TABLE_NAME
AND T1.CONSTRAINT_NAME = T2.CONSTRAINT_NAME ) B,
(SELECT T1.OWNER, T1.TABLE_NAME, T2.COLUMN_NAME, 'FK'||POSITION AS FK_POS
FROM (SELECT OWNER, TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'R' )T1,
(SELECT OWNER, TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, POSITION
FROM USER_CONS_COLUMNS ) T2
WHERE T1.OWNER = T2.OWNER
AND T1.TABLE_NAME = T2.TABLE_NAME
AND T1.CONSTRAINT_NAME = T2.CONSTRAINT_NAME ) C
WHERE A.OWNER = B.OWNER(+)
AND A.TABLE_NAME = B.TABLE_NAME(+)
AND A.COLUMN_NAME = B.COLUMN_NAME(+)
AND A.OWNER = C.OWNER(+)
AND A.TABLE_NAME = C.TABLE_NAME(+)
AND A.COLUMN_NAME = C.COLUMN_NAME(+)
AND A.OWNER = 'OWNER'
ORDER BY A.TABLE_NAME, A.COLUMN_ID

 

 

 

 

󰊲 [MYSQL] SQL 예시

테이블 정의서 추출 : ‘OWNER을 수정하여 수행

테이블 정의서 추출 SQL
SELECT table_schema 'OWNER'
, TABLE_NAME '영문테이블명',
, TABLE_COMMENT '한글테이블명'
, TABLE_ROWS '테이블볼륨'
, CREATE_TIME '등록일자'
, UPDATE_TIME '수정일자'
FROM information_schema.TABLES
WHERE table_schema='OWNER' --OWNER명 입력
AND TABLE_TYPE = 'BASE TABLE'



 

컬럼 정의서 추출 : ‘OWNER을 수정하여 수행

컬럼 정의서 추출 SQL


SELECT
t1.table_schema 'OWNER',
t1.table_name '테이블명_1',
column_name '영문컬럼명_2',
column_comment '한글컬럼명_3',
CASE
WHEN is_nullable = 'YES' THEN 'Y'
WHEN is_nullable = 'NO' THEN 'N'
END AS 'Null여부_6',
COLUMN_TYPE '데이터타입_7',
column_key 'PK정보_9',
column_default '제약조건_11',
extra 'Extra',
ORDINAL_POSITION
FROM
(SELECT
table_schema, table_name, table_comment
FROM information_schema.TABLES) t1,
(SELECT
table_schema, table_name, ORDINAL_POSITION, column_name, COLUMN_TYPE,column_key, extra, is_nullable, column_default, column_comment
FROM information_schema.COLUMNS) t2
WHERE
t1.table_schema = t2.table_schema
AND t1.table_name = t2.table_name
AND t1.TABLE_SCHEMA = 'OWNER명 입력'
ORDER BY t1.table_name, ordinal_position







󰊳 [MSSQL] SQL 예시

테이블 정의서 추출 SQL
SELECT
A.TABLE_CATALOG, --OWNER
DB_NAME() AS DBNAME, --DB
A.TABLE_NAME, --테이블명
C.VALUE AS TABLE_COMMENT, --테이블 COMMENT
i.rows, --테이블의 건수
J.create_date, --테이블생성일시
J.modify_date --테이블변경일시


FROM INFORMATION_SCHEMA.tables A
INNER JOIN sysobjects o ON o.name = a.TABLE_NAME
INNER JOIN sysindexes i ON o.id = i.id
INNER JOIN sys.objects j ON J.NAME = A.TABLE_NAME
LEFT OUTER JOIN
(
SELECT object_id(objname) AS TABLE_ID, VALUE
FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'User','dbo','table',NULL, NULL, NULL)
) C ON object_id(A.TABLE_NAME) = C.TABLE_ID
WHERE i.indid < 2
AND o.xtype = 'U'
AND A.TABLE_NAME <> 'sysdiagrams'
AND A.TABLE_NAME NOT LIKE '%temp%'
AND A.TABLE_NAME NOT LIKE '%test%'
AND A.TABLE_CATALOG = 'OWNER' --OWNER명 입력
ORDER BY A.TABLE_CATALOG, DB_NAME(), A.TABLE_NAME

테이블 정의서 추출 : ‘OWNER을 수정하여 수행

 

컬럼 정의서 추출 : ‘OWNER을 수정하여 수행

컬럼 정의서 추출 SQL
SELECTB.TableName AS [테이블명_1]
, A.COLUMN_NAME AS [영문컬럼명_2]
, ISNULL(B.ColumnDescription,'') AS [한글컬럼명_3]
,CASE A.IS_NULLABLE
WHEN 'YES'THEN 'Y'
ELSE 'N' ENDAS [NULL여부]
, CASE WHEN IdxType = 'C'
THEN 'Y' ELSE '' ENDAS PK정보_9
, CASE WHEN FKey is not null
THEN 'Y' ELSE '' ENDAS FK정보_10
, A.DATA_TYPEAS [데이터타입_7]
, CASE
WHEN A.CHARACTER_MAXIMUM_LENGTH IS NULL THEN
ISNULL(A.NUMERIC_PRECISION, '')
ELSE A.CHARACTER_MAXIMUM_LENGTH
END AS [데이터길이_8]
, ISNULL(A.COLUMN_DEFAULT, '') AS [제약조건_11]
, CASE WHEN refID is not null
THEN object_Name(refID)
ELSE '' ENDAS [참조테이블]
, CASE WHEN refColID is not null
THEN col_name(refID, refColID)
ELSE '' ENDAS [참조컬럼]
, ''AS [유형]
, ''AS [Validation Rule]
,A.ORDINAL_POSITIONAS [NO]
FROM INFORMATION_SCHEMA.COLUMNS AS A WITH (NOLOCK)
INNER JOIN (
SELECTA.nameAS TableName
,B.nameAS ColumnName
,C.Value AS ColumnDescription
, D.FKey
,D.refID
, D.refColID
,E.IdxType
FROMsys.tables AS A WITH (NOLOCK)
INNER JOIN sys.columns AS B WITH (NOLOCK)
ON A.object_id = B.object_id
left outer JOIN sys.extended_properties AS C WITH (NOLOCK)
ON A.object_id = C.major_id
AND B.column_id = c.minor_id
left outer join (
selectf.name AS FKey, f.parent_object_id, fc.parent_column_id, fc.referenced_object_id refID, fc.referenced_column_id refColID
fromsys.foreign_keys f
inner join sys.foreign_key_columns fc on f.object_id = fc.constraint_object_id
) D on A.object_id = D.parent_object_id and B.column_id = D.parent_column_id
left outer join (
select (case i.type when 0 then 'H' when 1 then 'C' else 'N' end) IdxType, i.object_id, c.column_id
fromsys.indexes i
inner join sys.index_columns c on i.index_id = c.index_id and c.object_id = i.object_id
group by i.type, i.object_id, c.column_id
) E on A.object_id = E.object_id and B.column_id = E.column_id
) AS B
ON A.TABLE_NAME = B.TableName
AND A.COLUMN_NAME = B.ColumnName
WHERE A.TABLE_CATALOG = 'OWNER'
order by 테이블명_1, NO







 

󰊴 [CUBRID) SQL 예시

테이블 정의서 추출 : ‘OWNER을 수정하여 수행(버전 10.X 기준)

테이블 정의서 추출 SQL
-10,x 버전
--큐브리드는 시스템 카탈로그에서 테이블건수 및 생성시간 수정시간 조회가 안됨


SELECT A.OWNER_NAME AS OWNER
, A.CLASS_NAME AS 영문테이블명_2
, A.COMMENT AS 한글테이블명_3
FROM DB_CLASS A
WHERE A.OWNER_NAME = 'OWNER'
AND A.is_system_class = 'NO'
ORDER BY A.OWNER_NAME ,A.CLASS_NAME


--9.x 버전
--큐브리드는 시스템 카탈로그에서 테이블건수 및 생성시간 수정시간 조회가 안됨


SELECT A.OWNER_NAME AS OWNER
, A.CLASS_NAME AS 테이블명_2
, G.DESCRIPTION AS 한글테이블명_3 --DBA권한 필요


FROM DB_CLASS A
LEFT JOIN _CUB_SCHEMA_COMMENTS G
ON A.CLASS_NAME = G.TABLE_NAME
AND G.COLUMN_NAME = '*'
WHERE A.OWNER_NAME = 'OWNER'
AND A.is_system_class = 'NO'
ORDER BY A.OWNER_NAME ,A.CLASS_NAME


-- 큐브리드에서는 전체건수를 제공하지 않는다
--결과를 다시 질의하면 테이블의 건수를 알수있다
select 'select ''' + class_name + ''', count(*) from ' + class_name from db_class where is_system_class='NO'

컬럼 정의서 추출 : ‘OWNER을 수정하여 수행(버전 10.X 기준)

컬럼 정의서 추출 SQL
--10.x 버전
SELECT A.CLASS_NAME AS 테이블명_1
, B.ATTR_NAME AS 컬럼영문명_2
, B.COMMENT AS 한글컬럼명_3
, B.IS_NULLABLE AS NULL여부_6
, B.DATA_TYPE AS 데이터타입_7
, B.PREC AS 데이터길이_8
, CASE WHEN D.KEY_ATTR_NAME IS NOT NULL THEN 'Y' END AS PK정보_9
, CASE WHEN F.KEY_ATTR_NAME IS NOT NULL THEN 'Y' END AS FK정보_10
, B.DEFAULT_VALUE AS 제약조건_11
, B.DEF_ORDER + 1 AS 컬럼순서
FROM DB_CLASS A
INNER JOIN DB_ATTRIBUTE B
ON B.CLASS_NAME = A.CLASS_NAME
LEFT JOIN DB_INDEX C
ON C.IS_PRIMARY_KEY = 'YES'
AND C.CLASS_NAME = B.CLASS_NAME
LEFT JOIN DB_INDEX_KEY D
ON D.CLASS_NAME = C.CLASS_NAME
AND D.INDEX_NAME = C.INDEX_NAME
AND D.KEY_ATTR_NAME = B.ATTR_NAME
LEFT JOIN DB_INDEX E
ON E.IS_FOREIGN_KEY = 'YES'
AND E.CLASS_NAME = B.CLASS_NAME
LEFT JOIN DB_INDEX_KEY F
ON F.CLASS_NAME = E.CLASS_NAME
AND F.INDEX_NAME = E.INDEX_NAME
AND F.KEY_ATTR_NAME = B.ATTR_NAME
WHERE A.OWNER_NAME = 'OWNER명 입력'
ORDER BY B.DEF_ORDER






--9.x 버전


SELECT A.OWNER_NAME AS OWNER
A.CLASS_NAME AS 테이블명_1
, B.ATTR_NAME AS 컬럼영문명_2
, G.DESCRIPTION AS 한글컬럼명_3 --DBA권한 필요
, B.IS_NULLABLE AS NULL여부_6
, B.DATA_TYPE AS 데이터타입_7
, B.PREC AS 데이터길이_8
, CASE WHEN D.KEY_ATTR_NAME IS NOT NULL THEN 'Y' END AS PK정보_9
, CASE WHEN F.KEY_ATTR_NAME IS NOT NULL THEN 'Y' END AS FK정보_10
, B.DEFAULT_VALUE AS 제약조건_11
, B.DEF_ORDER + 1 AS 컬럼순서
FROM DB_CLASS A
INNER JOIN DB_ATTRIBUTE B
ON B.CLASS_NAME = A.CLASS_NAME
LEFT JOIN DB_INDEX C
ON C.IS_PRIMARY_KEY = 'YES'
AND C.CLASS_NAME = B.CLASS_NAME
LEFT JOIN DB_INDEX_KEY D
ON D.CLASS_NAME = C.CLASS_NAME
AND D.INDEX_NAME = C.INDEX_NAME
AND D.KEY_ATTR_NAME = B.ATTR_NAME
LEFT JOIN DB_INDEX E
ON E.IS_FOREIGN_KEY = 'YES'
AND E.CLASS_NAME = B.CLASS_NAME
LEFT JOIN DB_INDEX_KEY F
ON F.CLASS_NAME = E.CLASS_NAME
AND F.INDEX_NAME = E.INDEX_NAME
AND F.KEY_ATTR_NAME = B.ATTR_NAME
LEFT JOIN _CUB_SCHEMA_COMMENTS G
ON A.CLASS_NAME = G.TABLE_NAME
AND B.ATTR_NAME = G.COLUMN_NAME
AND G.COLUMN_NAME <> '*'
WHERE A.OWNER_NAME = 'OWNER명 입력'
AND A.is_system_class = 'NO'
ORDER BY A.CLASS_NAME , B.DEF_ORDER + 1

󰊵 [SYBASE] SQL 예시

테이블 정의서 추출 : ‘OWNER을 수정하여 수행

테이블 정의서 추출 SQL
SELECT user_name(T.creator) as Owner
, db_name() as DB
, T.TABLE_NAME as 영문테이블명
, trim(T.remarks) as 한글테이블명
, count as row
, b.crdate as 테이블등록일시
, b.expdate as 테이블수정일시
from systable as T
JOIN sysobjects as B
on T.object_id = B.id
where T.table_type = 'BASE'
and B.TYPE = 'U'
AND B.UID > 10
and user_name(T.creator) = 'Owner' --Owner입력
ORDER BY user_name(T.creator), db_name(), T.TABLE_NAME

 

컬럼 정의서 추출 : ‘OWNER을 수정하여 수행

컬럼 정의서 추출 SQL
SELECT
user_name(T.creator) AS OWNER,
T.Table_name AS '테이블명_1',
C.column_name AS '영문컬럼명_2',
trim(C.remarks) as '한글컬럼명_3',
case when C.nulls = 'N' then 'Y' else 'N' end as 'Null여부_6',
D.domain_name as '데이터타입_7',
C.width as '데이터길이_8',
C.Pkey as 'PK정보_9',
C."DEFAULT" as '제약조건_11',
row_number() over (PARTITION BY T.Table_name order by C.Column_id) as '컬럼순서'
from
systable as T
join SYSCOLUMN as C
on (T.table_id = C.table_id)
join SYSDOMAIN as D
on (C.domain_id = D.domain_id)
join sysobjects as E
on T.object_id = E.id
where T.table_type = 'BASE'
AND E.UID > 10
AND E.TYPE='U'
and user_name(T.creator) = 'OWNER 명 입력'
order by
T.table_id, C.column_id ;

 

󰊶 [TIBERO] SQL 예시

테이블 정의서 추출 : ‘OWNER을 수정하여 수행

테이블 정의서 추출 SQL
SELECT S1.TABLESPACE_NAME AS OWNER, -- OWNER
S1.TABLE_NAME AS 영문테이블명, -- 테이블명(영문),
COMMENTS AS 한글테이블명, -- 테이블명(한글),
NUM_ROWS AS 테이블볼륨, -- Row.
S3.CREATED AS 생성일자, -- 생성일자
S3.LAST_DDL_TIME AS 수정일자 -- 수정일자
FROM USER_TABLES S1,
USER_TAB_COMMENTS S2,
USER_OBJECTS S3
WHERE S1.TABLE_NAME = S2.TABLE_NAME
AND S2.TABLE_TYPE = 'TABLE'
AND TABLESPACE_NAME IS NOT NULL
AND TABLESPACE_NAME = 'OWNER' --OWNER명 입력
AND S1.TABLE_NAME = S3.OBJECT_NAME
AND S1.TABLE_NAME NOT LIKE '%temp%'
AND S1.TABLE_NAME NOT LIKE '%test%'
ORDER BY S1.TABLESPACE_NAME , S1.TABLE_NAME

컬럼 정의서 추출 : ‘OWNER을 수정하여 수행

컬럼 정의서 추출 SQL
SELECT A.OWNER AS OWNER,
A.TABLE_NAME AS 테이블명_1,
A.COLUMN_NAME AS 컬럼영문명_2,
A.COL_CMT AS 한글컬럼명_3,
A.NULLABLE AS NULL여부_6,
A.DATA_TYPE AS 데이터타입_7,
A.LEN 데이터길이_8,
B.POS AS PK정보_9,
C.FK_POS FK정보_10,
A.DATA_DEFAULT AS 제약조건_11,
A.COLUMN_ID AS 컬럼순서
FROM
(SELECT S1.OWNER ,
S1.TABLE_NAME,
S3.COMMENTS AS TAB_CMT,
S1.COLUMN_NAME,
S2.COMMENTS AS COL_CMT,
S1.DATA_TYPE,
CASE WHEN S1.DATA_PRECISION IS NOT NULL THEN DATA_PRECISION||','||DATA_SCALE
ELSE TO_CHAR(S1.DATA_LENGTH)
END AS LEN,
NULLABLE,
COLUMN_ID,
DATA_DEFAULT
FROM ALL_TAB_COLUMNS S1,
ALL_COL_COMMENTS S2,
ALL_TAB_COMMENTS S3
WHERE S1.OWNER = S2.OWNER
AND S1.TABLE_NAME = S2.TABLE_NAME
AND S1.COLUMN_NAME = S2.COLUMN_NAME
AND S1.OWNER = S3.OWNER
AND S1.TABLE_NAME = S3.TABLE_NAME ) A,
(SELECT T1.OWNER, T1.TABLE_NAME, T2.COLUMN_NAME, 'PK'||POSITION AS POS
FROM (SELECT OWNER, TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'P' )T1,
(SELECT OWNER, TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, POSITION
FROM USER_CONS_COLUMNS ) T2
WHERE T1.OWNER = T2.OWNER
AND T1.TABLE_NAME = T2.TABLE_NAME
AND T1.CONSTRAINT_NAME = T2.CONSTRAINT_NAME ) B,
(SELECT T1.OWNER, T1.TABLE_NAME, T2.COLUMN_NAME, 'FK'||POSITION AS FK_POS
FROM (SELECT OWNER, TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'R' )T1,
(SELECT OWNER, TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, POSITION
FROM USER_CONS_COLUMNS ) T2
WHERE T1.OWNER = T2.OWNER
AND T1.TABLE_NAME = T2.TABLE_NAME
AND T1.CONSTRAINT_NAME = T2.CONSTRAINT_NAME ) C
WHERE A.OWNER = B.OWNER(+)
AND A.TABLE_NAME = B.TABLE_NAME(+)
AND A.COLUMN_NAME = B.COLUMN_NAME(+)
AND A.OWNER = C.OWNER(+)
AND A.TABLE_NAME = C.TABLE_NAME(+)
AND A.COLUMN_NAME = C.COLUMN_NAME(+)
AND A.OWNER = 'OWNER명 입력'
ORDER BY A.TABLE_NAME, A.COLUMN_ID

 

728x90

'SQL' 카테고리의 다른 글

MS SQL 미사용 테이블 확인 SQL  (0) 2022.03.24
오라클 패턴 검색 TRANSLATE  (0) 2022.01.22
오라클 Exists SQL 튜닝  (0) 2022.01.22
오라클 Not In SQL 튜닝  (0) 2022.01.22

+ Recent posts