테이블,컬럼 comments (정보관리테이블만들기)
< 정보테이블 생성하기 >
---------------------------------------------------------------------
DROP TABLE TB_INFO;
CREATE TABLE TB_INFO (
OWNER VARCHAR(15) NOT NULL,
TABLE_NAME VARCHAR(30) NOT NULL,
TABLE_COMMENTS VARCHAR(200) ,
COLUMN_NAME VARCHAR(30) NOT NULL,
COLUMN_COMMENTS VARCHAR(200) ,
COLUMN_ID NUMBER,
DATA_TYPE VARCHAR(20) NOT NULL,
NULLABLE CHAR(1) NOT NULL,
TABLE_TYPE VARCHAR(20)
)
TABLESPACE TS_COM_TB
;
COMMENT ON COLUMN TB_INFO.OWNER IS 'OWNER';
COMMENT ON COLUMN TB_INFO.TABLE_NAME IS '테이블명';
COMMENT ON COLUMN TB_INFO.TABLE_COMMENTS IS '테이블설명';
COMMENT ON COLUMN TB_INFO.COLUMN_NAME IS '컬럼명';
COMMENT ON COLUMN TB_INFO.COLUMN_COMMENTS IS '컬럼설명';
COMMENT ON COLUMN TB_INFO.COLUMN_ID IS '컬럼ID';
COMMENT ON COLUMN TB_INFO.DATA_TYPE IS '데이터타입';
COMMENT ON COLUMN TB_INFO.NULLABLE IS 'NULL허용여부';
COMMENT ON COLUMN TB_INFO.TABLE_TYPE IS '테이블형태';
ALTER TABLE TB_INFO
ADD ( CONSTRAINT PK_INFO PRIMARY KEY (OWNER, TABLE_NAME,COLUMN_NAME)
USING INDEX
TABLESPACE TS_COM_IX ) ;
GRANT INSERT, UPDATE, DELETE ON TB_INFO TO ROLE_COM_W;
GRANT SELECT ON TB_INFO TO ROLE_COM_R;
CREATE PUBLIC SYNONYM TB_INFO FOR COM.TB_INFO;
commit;
---------------------------------------------------------------------
< 실제 테이블에 테이블정보 넣기 >
---------------------------------------------------------------------
DELETE
FROM TB_INFO
WHERE OWNER =
(select distinct(user) from user_tables);
INSERT INTO TB_INFO
select TB_COM.OWNER,
TB_COM.TABLE_NAME,
TB_COM.TCOMMENTS,
TB_COM.COLUMN_NAME,
TB_COM.CCOMMENTS,
TB_COL.COLUMN_ID,
TB_COL.DATA_TYPE,
TB_COL.NULLABLE,
TB_COM.TABLE_TYPE
FROM
(select user as OWNER,
a.TABLE_NAME as TABLE_NAME,
a.COMMENTS as TCOMMENTS,
b.COLUMN_NAME as COLUMN_NAME,
b.COMMENTS as CCOMMENTS,
a.TABLE_TYPE as TABLE_TYPE
from user_tab_comments a, user_col_comments b
where
a.table_name = b.table_name(+)
and a.comments is not null) TB_COM,
(select table_name, column_name, nullable, column_id,
(CASE WHEN data_precision is null THEN data_type||'('||data_length||')'
WHEN data_scale = 0 THEN data_type||'('||data_length||')'
ELSE data_type||'('||data_precision||'.'||data_scale||')'
END) as data_type
from user_tab_columns) TB_COL
WHERE TB_COM.TABLE_NAME = TB_COL.TABLE_NAME
and TB_COM.COLUMN_NAME = TB_COL.COLUMN_NAME;
commit;
---------------------------------------------------------------------
위 내용으로 작성되어진 예시 캡쳐화면을 첨부합니다.
위 예제는 테이블명,테이블스페이스명,롤,시너님을 수정하셔서
실제 프로젝트에서 사용하는 쿼리이기에 환경만 만드시거나 조정만 하시면 충분히 사용하실듯 하네요.
^^ 오랫만에 접속해보는군요. 다시 자주 찾아 뵙도록 하겠습니다.
edit512 골뱅이 네이트 닷컴
---------------------------------------------------------------------
DROP TABLE TB_INFO;
CREATE TABLE TB_INFO (
OWNER VARCHAR(15) NOT NULL,
TABLE_NAME VARCHAR(30) NOT NULL,
TABLE_COMMENTS VARCHAR(200) ,
COLUMN_NAME VARCHAR(30) NOT NULL,
COLUMN_COMMENTS VARCHAR(200) ,
COLUMN_ID NUMBER,
DATA_TYPE VARCHAR(20) NOT NULL,
NULLABLE CHAR(1) NOT NULL,
TABLE_TYPE VARCHAR(20)
)
TABLESPACE TS_COM_TB
;
COMMENT ON COLUMN TB_INFO.OWNER IS 'OWNER';
COMMENT ON COLUMN TB_INFO.TABLE_NAME IS '테이블명';
COMMENT ON COLUMN TB_INFO.TABLE_COMMENTS IS '테이블설명';
COMMENT ON COLUMN TB_INFO.COLUMN_NAME IS '컬럼명';
COMMENT ON COLUMN TB_INFO.COLUMN_COMMENTS IS '컬럼설명';
COMMENT ON COLUMN TB_INFO.COLUMN_ID IS '컬럼ID';
COMMENT ON COLUMN TB_INFO.DATA_TYPE IS '데이터타입';
COMMENT ON COLUMN TB_INFO.NULLABLE IS 'NULL허용여부';
COMMENT ON COLUMN TB_INFO.TABLE_TYPE IS '테이블형태';
ALTER TABLE TB_INFO
ADD ( CONSTRAINT PK_INFO PRIMARY KEY (OWNER, TABLE_NAME,COLUMN_NAME)
USING INDEX
TABLESPACE TS_COM_IX ) ;
GRANT INSERT, UPDATE, DELETE ON TB_INFO TO ROLE_COM_W;
GRANT SELECT ON TB_INFO TO ROLE_COM_R;
CREATE PUBLIC SYNONYM TB_INFO FOR COM.TB_INFO;
commit;
---------------------------------------------------------------------
< 실제 테이블에 테이블정보 넣기 >
---------------------------------------------------------------------
DELETE
FROM TB_INFO
WHERE OWNER =
(select distinct(user) from user_tables);
INSERT INTO TB_INFO
select TB_COM.OWNER,
TB_COM.TABLE_NAME,
TB_COM.TCOMMENTS,
TB_COM.COLUMN_NAME,
TB_COM.CCOMMENTS,
TB_COL.COLUMN_ID,
TB_COL.DATA_TYPE,
TB_COL.NULLABLE,
TB_COM.TABLE_TYPE
FROM
(select user as OWNER,
a.TABLE_NAME as TABLE_NAME,
a.COMMENTS as TCOMMENTS,
b.COLUMN_NAME as COLUMN_NAME,
b.COMMENTS as CCOMMENTS,
a.TABLE_TYPE as TABLE_TYPE
from user_tab_comments a, user_col_comments b
where
a.table_name = b.table_name(+)
and a.comments is not null) TB_COM,
(select table_name, column_name, nullable, column_id,
(CASE WHEN data_precision is null THEN data_type||'('||data_length||')'
WHEN data_scale = 0 THEN data_type||'('||data_length||')'
ELSE data_type||'('||data_precision||'.'||data_scale||')'
END) as data_type
from user_tab_columns) TB_COL
WHERE TB_COM.TABLE_NAME = TB_COL.TABLE_NAME
and TB_COM.COLUMN_NAME = TB_COL.COLUMN_NAME;
commit;
---------------------------------------------------------------------
위 내용으로 작성되어진 예시 캡쳐화면을 첨부합니다.
위 예제는 테이블명,테이블스페이스명,롤,시너님을 수정하셔서
실제 프로젝트에서 사용하는 쿼리이기에 환경만 만드시거나 조정만 하시면 충분히 사용하실듯 하네요.
^^ 오랫만에 접속해보는군요. 다시 자주 찾아 뵙도록 하겠습니다.
edit512 골뱅이 네이트 닷컴
[이 게시물은 관리자님에 의해 2011-10-31 16:47:36 Oracle에서 이동 됨]
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 1030 | 18년 전 | 1793 | ||
| 1029 | 18년 전 | 2228 | ||
| 1028 | 18년 전 | 2636 | ||
| 1027 | 18년 전 | 1801 | ||
| 1026 | 18년 전 | 1538 | ||
| 1025 | 18년 전 | 1545 | ||
| 1024 | 18년 전 | 1470 | ||
| 1023 | 18년 전 | 3231 | ||
| 1022 | 18년 전 | 2921 | ||
| 1021 | 18년 전 | 1681 | ||
| 1020 | 18년 전 | 3424 | ||
| 1019 | 18년 전 | 1846 | ||
| 1018 | 18년 전 | 1499 | ||
| 1017 | 18년 전 | 1965 | ||
| 1016 | 18년 전 | 2103 | ||
| 1015 | 18년 전 | 1642 | ||
| 1014 | 18년 전 | 2352 | ||
| 1013 | 18년 전 | 2009 | ||
| 1012 | 18년 전 | 1633 | ||
| 1011 | 18년 전 | 1788 | ||
| 1010 | 18년 전 | 2048 | ||
| 1009 | 18년 전 | 1809 | ||
| 1008 | 18년 전 | 1625 | ||
| 1007 | 18년 전 | 1671 | ||
| 1006 | 18년 전 | 3140 | ||
| 1005 | 18년 전 | 2007 | ||
| 1004 | 18년 전 | 1877 | ||
| 1003 | 18년 전 | 4372 | ||
| 1002 | 18년 전 | 4999 | ||
| 1001 | 18년 전 | 3169 | ||
| 1000 | 18년 전 | 2917 | ||
| 999 | 19년 전 | 3506 | ||
| 998 | 19년 전 | 2055 | ||
| 997 | 19년 전 | 2418 | ||
| 996 | 19년 전 | 2707 | ||
| 995 | 19년 전 | 2767 | ||
| 994 | 19년 전 | 2354 | ||
| 993 | 19년 전 | 1624 | ||
| 992 | 19년 전 | 3387 | ||
| 991 | 19년 전 | 1998 | ||
| 990 | 19년 전 | 2393 | ||
| 989 | 19년 전 | 2464 | ||
| 988 | 19년 전 | 2893 | ||
| 987 | 19년 전 | 5227 | ||
| 986 |
|
19년 전 | 2500 | |
| 985 |
|
19년 전 | 3351 | |
| 984 | 19년 전 | 4280 | ||
| 983 |
느낌좋은날
|
19년 전 | 2512 | |
| 982 | 19년 전 | 2476 | ||
| 981 | 19년 전 | 4044 | ||
| 980 | 19년 전 | 2753 | ||
| 979 |
Sinpre
|
19년 전 | 3004 | |
| 978 | 19년 전 | 2214 | ||
| 977 | 19년 전 | 2225 | ||
| 976 | 19년 전 | 1996 | ||
| 975 | 19년 전 | 3277 | ||
| 974 | 19년 전 | 2114 | ||
| 973 |
|
19년 전 | 2798 | |
| 972 |
|
19년 전 | 1750 | |
| 971 | 19년 전 | 5324 | ||
| 970 | 19년 전 | 3581 | ||
| 969 | 19년 전 | 4330 | ||
| 968 | 19년 전 | 3074 | ||
| 967 | 19년 전 | 2532 | ||
| 966 | 19년 전 | 3933 | ||
| 965 | 19년 전 | 2666 | ||
| 964 | 19년 전 | 3002 | ||
| 963 | 19년 전 | 2973 | ||
| 962 | 19년 전 | 4191 | ||
| 961 | 19년 전 | 3133 | ||
| 960 | 19년 전 | 3032 | ||
| 959 | 19년 전 | 3688 | ||
| 958 | 19년 전 | 2981 | ||
| 957 | 19년 전 | 2195 | ||
| 956 | 19년 전 | 2227 | ||
| 955 | 19년 전 | 2184 | ||
| 954 | 19년 전 | 2776 | ||
| 953 | 19년 전 | 2485 | ||
| 952 | 19년 전 | 3356 | ||
| 951 | 19년 전 | 3215 | ||
| 950 | 19년 전 | 1829 | ||
| 949 | 19년 전 | 2742 | ||
| 948 | 19년 전 | 7830 | ||
| 947 |
|
19년 전 | 2505 | |
| 946 |
DeepnBlue
|
19년 전 | 3118 | |
| 945 |
pearly
|
19년 전 | 2893 | |
| 944 | 19년 전 | 3032 | ||
| 943 |
|
19년 전 | 2240 | |
| 942 | 19년 전 | 2456 | ||
| 941 |
|
19년 전 | 4080 | |
| 940 | 19년 전 | 2235 | ||
| 939 |
|
19년 전 | 4222 | |
| 938 |
|
19년 전 | 2388 | |
| 937 | 19년 전 | 2087 | ||
| 936 |
|
19년 전 | 2333 | |
| 935 | 19년 전 | 1881 | ||
| 934 |
|
19년 전 | 2413 | |
| 933 | 19년 전 | 2207 | ||
| 932 |
|
19년 전 | 3078 | |
| 931 | 19년 전 | 1867 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기