CREATEORREPLACEPROCEDURE PORC_COMMENT IS
V_LOG VARCHAR2(1000);CURSOR CUR_SQL ISWITH A AS(SELECT UPPER(TAB.TAB_NAME)AS TAB_NAME,
TAB.TAB_COMMENTS,
UPPER(TAB.COL_NAME)AS COL_NAME,
TAB.COL_COMMENTS
FROM TABCOL_COMMENTS TAB),
B AS(SELECT'comment on column '|| TAB_NAME ||'.'|| COL_NAME ||' is ''' ||
COL_COMMENTS || ''''AS SQLS
FROM A),--字段注释
C AS(SELECT'comment on table '|| TAB_NAME ||' is ''' || TAB_COMMENTS || ''''AS SQLS
FROM A),--表注释
D AS(SELECTDISTINCT SQLS FROM C)SELECT SQLS
FROM B
UNIONALLSELECT SQLS FROM D;BEGINEXECUTE IMMEDIATE 'truncate table tabcol_comments_log';FOR CUR_S IN CUR_SQL LOOPINSERTINTO TABCOL_COMMENTS_LOG (V_LOG)VALUES(CUR_S.SQLS);COMMIT;EXECUTE IMMEDIATE CUR_S.SQLS;ENDLOOP;END PORC_COMMENT;