113 lines
3.0 KiB
Markdown
113 lines
3.0 KiB
Markdown
```SQL
|
||
|
||
truncate table tbl_info
|
||
|
||
insert into tbl_info
|
||
|
||
|
||
|
||
select distinct tbl_id, tbl_user, tbl_id, tbl_nm, tbl_desc
|
||
from tbl_info dde
|
||
order by cast(seq as integer)
|
||
|
||
|
||
-- 테이블 삭제
|
||
select distinct concat('Drop table ', tbl_user, '.', tbl_id, ';') as drpotbl
|
||
from tbl_info dde
|
||
order by cast(seq as integer)
|
||
|
||
|
||
|
||
-- 테이블 생성
|
||
select tnm, ty, nullyn, def, com
|
||
from (
|
||
select distinct 0 as sor
|
||
, 0 as idx
|
||
, tbl_id
|
||
, concat('Create table ', tbl_user, '.', tbl_id, ' (') as tnm
|
||
, '' ty
|
||
, '' nullyn
|
||
, '' def
|
||
, '' com
|
||
from tbl_info dde
|
||
union all
|
||
select 1 as sor
|
||
, seq as idx
|
||
, tbl_id
|
||
, col_id as col_lend
|
||
, concat(col_ty, (case when col_len is null then '' else concat('(', col_len, ')') end )) as ty
|
||
, case when defv is not null then concat( ' default '
|
||
, case when col_ty = 'VARCHAR'
|
||
then concat('''', defv, '''') -- varchar인경우
|
||
when col_ty = 'TIMESTAMP' and instr(defv, ' \n') > 0 -- 하드코딩
|
||
then concat('to_date(''', replace(defv, ' \n', ''), '''', ', ''yyyy-mm-dd hh24:mi:ss'')')
|
||
when col_ty = 'NUMBER'
|
||
then replace(defv, ',', '') -- 천단위 콤마제거
|
||
else nvl(defv, '')
|
||
end
|
||
) else null end as def
|
||
, case when nullyn = 'O' then ' Not NULL ' else '' end as nullyn
|
||
, ',' as com
|
||
from tbl_info dde
|
||
union all
|
||
select distinct 2 as sor
|
||
, 9999 as idx
|
||
, tbl_id
|
||
, ' ); \n\n' as tnm
|
||
, '' ty
|
||
, '' nullyn
|
||
, '' def
|
||
, '' com
|
||
from tbl_info dde
|
||
) c
|
||
-- where tbl_id = 'SACP_MOTION'
|
||
order by tbl_id, sor, idx
|
||
|
||
|
||
-- pk
|
||
SELECT concat('ALTER TABLE ',
|
||
tbl_user,
|
||
'.',
|
||
tbl_id,
|
||
' ADD CONSTRAINT PK_',
|
||
tbl_id,
|
||
' PRIMARY KEY (',
|
||
GROUP_CONCAT(col_id SEPARATOR ', '),
|
||
');' ) AS tbl_pk
|
||
from tbl_info dde
|
||
where pkyn = 'O'
|
||
-- and tbl_id = 'SACP_MOTION'
|
||
group by tbl_id
|
||
order by cast(tbl_no as integer)
|
||
|
||
-- TABLE COMMENT
|
||
select distinct concat('COMMENT ON table ',
|
||
tbl_user, '.', tbl_id,
|
||
' IS ',
|
||
'''',
|
||
tbl_nm,
|
||
nvl2(tbl_desc, ' (', ''),
|
||
tbl_desc,
|
||
nvl2(tbl_desc, ')', ''),
|
||
'''',
|
||
';') as col_comment
|
||
from tbl_info dde
|
||
where tbl_id = 'SACP_MOTION'
|
||
order by cast(seq as integer)
|
||
|
||
|
||
|
||
-- COLUMN COMMENT
|
||
select *
|
||
from (
|
||
select concat('COMMENT ON COLUMN ',
|
||
concat(tbl_user, '.', tbl_id,'.', col_id),
|
||
' IS ',
|
||
concat('''', concat(col_nm, nvl2(replace(bigo, '''', '''), ' (', ''), replace(nvl(bigo,''), '''', '''), nvl2(bigo, ')', '')), '''')
|
||
, ';') as col_comment
|
||
from tbl_info dde
|
||
order by cast(seq as integer)
|
||
) a
|
||
where col_comment is not null
|
||
|
||
``` |